summaryrefslogtreecommitdiff
path: root/src/server/api/common/push-sw.ts
diff options
context:
space:
mode:
authorAkihiko Odaki <nekomanma@pixiv.co.jp>2018-03-31 19:55:00 +0900
committerAkihiko Odaki <nekomanma@pixiv.co.jp>2018-03-31 20:33:14 +0900
commit68a9aac9573969311dd00a44536c3ee4c05b883d (patch)
tree7d6c502c1e2c61eb3327f678f766f23bda10c1e7 /src/server/api/common/push-sw.ts
parentStore texts as HTML (diff)
downloadsharkey-68a9aac9573969311dd00a44536c3ee4c05b883d.tar.gz
sharkey-68a9aac9573969311dd00a44536c3ee4c05b883d.tar.bz2
sharkey-68a9aac9573969311dd00a44536c3ee4c05b883d.zip
Implement remote status retrieval
Diffstat (limited to 'src/server/api/common/push-sw.ts')
-rw-r--r--src/server/api/common/push-sw.ts52
1 files changed, 0 insertions, 52 deletions
diff --git a/src/server/api/common/push-sw.ts b/src/server/api/common/push-sw.ts
deleted file mode 100644
index 13227af8d5..0000000000
--- a/src/server/api/common/push-sw.ts
+++ /dev/null
@@ -1,52 +0,0 @@
-const push = require('web-push');
-import * as mongo from 'mongodb';
-import Subscription from '../../../models/sw-subscription';
-import config from '../../../conf';
-
-if (config.sw) {
- // アプリケーションの連絡先と、サーバーサイドの鍵ペアの情報を登録
- push.setVapidDetails(
- config.maintainer.url,
- config.sw.public_key,
- config.sw.private_key);
-}
-
-export default async function(userId: mongo.ObjectID | string, type, body?) {
- if (!config.sw) return;
-
- if (typeof userId === 'string') {
- userId = new mongo.ObjectID(userId);
- }
-
- // Fetch
- const subscriptions = await Subscription.find({
- userId: userId
- });
-
- subscriptions.forEach(subscription => {
- const pushSubscription = {
- endpoint: subscription.endpoint,
- keys: {
- auth: subscription.auth,
- p256dh: subscription.publickey
- }
- };
-
- push.sendNotification(pushSubscription, JSON.stringify({
- type, body
- })).catch(err => {
- //console.log(err.statusCode);
- //console.log(err.headers);
- //console.log(err.body);
-
- if (err.statusCode == 410) {
- Subscription.remove({
- userId: userId,
- endpoint: subscription.endpoint,
- auth: subscription.auth,
- publickey: subscription.publickey
- });
- }
- });
- });
-}