summaryrefslogtreecommitdiff
path: root/src/server/api/endpoints/sw
diff options
context:
space:
mode:
authorsyuilo <syuilotan@yahoo.co.jp>2018-11-02 12:49:08 +0900
committersyuilo <syuilotan@yahoo.co.jp>2018-11-02 12:49:08 +0900
commita7e6b766be6b30b37839beb13f31d96b141cc25a (patch)
treeb6bf96ae808260f0aa94767835d59d25f7f889a7 /src/server/api/endpoints/sw
parentUpdate src/server/api/endpoints/meta.ts (diff)
downloadsharkey-a7e6b766be6b30b37839beb13f31d96b141cc25a.tar.gz
sharkey-a7e6b766be6b30b37839beb13f31d96b141cc25a.tar.bz2
sharkey-a7e6b766be6b30b37839beb13f31d96b141cc25a.zip
Resolve #2623
Diffstat (limited to 'src/server/api/endpoints/sw')
-rw-r--r--src/server/api/endpoints/sw/register.ts45
1 files changed, 24 insertions, 21 deletions
diff --git a/src/server/api/endpoints/sw/register.ts b/src/server/api/endpoints/sw/register.ts
index 503fc94654..69337bd8c0 100644
--- a/src/server/api/endpoints/sw/register.ts
+++ b/src/server/api/endpoints/sw/register.ts
@@ -2,33 +2,36 @@ import $ from 'cafy';
import Subscription from '../../../../models/sw-subscription';
import { ILocalUser } from '../../../../models/user';
import config from '../../../../config';
+import getParams from '../../get-params';
export const meta = {
- requireCredential: true
-};
+ requireCredential: true,
-/**
- * subscribe service worker
- */
-export default async (params: any, user: ILocalUser) => new Promise(async (res, rej) => {
- // Get 'endpoint' parameter
- const [endpoint, endpointErr] = $.str.get(params.endpoint);
- if (endpointErr) return rej('invalid endpoint param');
+ params: {
+ endpoint: {
+ validator: $.str
+ },
+
+ auth: {
+ validator: $.str
+ },
- // Get 'auth' parameter
- const [auth, authErr] = $.str.get(params.auth);
- if (authErr) return rej('invalid auth param');
+ publickey: {
+ validator: $.str
+ }
+ }
+};
- // Get 'publickey' parameter
- const [publickey, publickeyErr] = $.str.get(params.publickey);
- if (publickeyErr) return rej('invalid publickey param');
+export default async (params: any, user: ILocalUser) => new Promise(async (res, rej) => {
+ const [ps, psErr] = getParams(meta, params);
+ if (psErr) return rej(psErr);
// if already subscribed
const exist = await Subscription.findOne({
userId: user._id,
- endpoint: endpoint,
- auth: auth,
- publickey: publickey,
+ endpoint: ps.endpoint,
+ auth: ps.auth,
+ publickey: ps.publickey,
deletedAt: { $exists: false }
});
@@ -41,9 +44,9 @@ export default async (params: any, user: ILocalUser) => new Promise(async (res,
await Subscription.insert({
userId: user._id,
- endpoint: endpoint,
- auth: auth,
- publickey: publickey
+ endpoint: ps.endpoint,
+ auth: ps.auth,
+ publickey: ps.publickey
});
res({