Fixed WebPush Notification error subscription
This commit is contained in:
@@ -1,11 +1,11 @@
|
||||
const express = require('express');
|
||||
const router = express.Router();
|
||||
const mongoose = require('mongoose').set('debug', false)
|
||||
const mongoose = require('mongoose').set('debug', false);
|
||||
const Subscription = mongoose.model('subscribers');
|
||||
|
||||
const tools = require('../tools/general');
|
||||
|
||||
var { authenticate } = require('../middleware/authenticate');
|
||||
var {authenticate} = require('../middleware/authenticate');
|
||||
|
||||
const isValidSaveRequest = (req, res) => {
|
||||
try {
|
||||
@@ -15,14 +15,14 @@ const isValidSaveRequest = (req, res) => {
|
||||
res.send(JSON.stringify({
|
||||
error: {
|
||||
id: 'no-endpoint',
|
||||
message: 'Subscription must have an endpoint'
|
||||
}
|
||||
message: 'Subscription must have an endpoint',
|
||||
},
|
||||
}));
|
||||
return false
|
||||
return false;
|
||||
}
|
||||
return true
|
||||
return true;
|
||||
} catch (e) {
|
||||
return false
|
||||
return false;
|
||||
}
|
||||
};
|
||||
|
||||
@@ -39,65 +39,63 @@ router.post('/', authenticate, (req, res) => {
|
||||
subscriptionModel.browser = req.get('User-Agent');
|
||||
|
||||
// Find if already exist
|
||||
Subscription.findOne( {userId: subscriptionModel.userId, access: subscriptionModel.access, browser: subscriptionModel.browser})
|
||||
.then(itemsub => {
|
||||
return itemsub
|
||||
})
|
||||
.catch(err => {
|
||||
// Not found
|
||||
return null
|
||||
})
|
||||
.then(myitem => {
|
||||
Subscription.findOne({
|
||||
userId: subscriptionModel.userId,
|
||||
access: subscriptionModel.access,
|
||||
browser: subscriptionModel.browser,
|
||||
}).then(itemsub => {
|
||||
return itemsub;
|
||||
}).catch(err => {
|
||||
// Not found
|
||||
return null;
|
||||
}).then(myitem => {
|
||||
|
||||
if (myitem === null) {
|
||||
myitem = subscriptionModel;
|
||||
tools.mylogshow('Subscription NOT EXISTED IN DB, so I use this created!', myitem)
|
||||
}
|
||||
if (myitem === null) {
|
||||
myitem = subscriptionModel;
|
||||
tools.mylogshow('Subscription NOT EXISTED IN DB, so I use this created!', myitem)
|
||||
} else {
|
||||
myitem.endpoint = subscriptionModel.endpoint;
|
||||
myitem.keys = subscriptionModel.keys;
|
||||
}
|
||||
|
||||
// else
|
||||
// tools.mylogshow('Subscription already Existed!');
|
||||
return myitem.save((err, subscription) => {
|
||||
if (err) {
|
||||
console.error(`Error occurred while saving subscription. Err: ${err}`);
|
||||
return res.status(500).json({
|
||||
error: 'Technical error occurred',
|
||||
});
|
||||
} else {
|
||||
// Send 201 - resource created
|
||||
// res.status(201).json({ data: 'Subscription saved.' });
|
||||
|
||||
console.log('New Subscription id=', subscriptionModel.userId);
|
||||
|
||||
myitem.save((err, subscription) => {
|
||||
if (err) {
|
||||
console.error(`Error occurred while saving subscription. Err: ${err}`);
|
||||
res.status(500).json({
|
||||
error: 'Technical error occurred'
|
||||
});
|
||||
} else {
|
||||
// Send 201 - resource created
|
||||
// res.status(201).json({ data: 'Subscription saved.' });
|
||||
res.send({ data: 'Subscription saved.' });
|
||||
// console.log('req.body', req.body)
|
||||
|
||||
console.log('New Subscription id=', subscriptionModel.userId);
|
||||
|
||||
// console.log('req.body', req.body)
|
||||
|
||||
if (req.body.options !== null) {
|
||||
tools.sendBackNotif(subscription, req.body.options)
|
||||
}
|
||||
if (req.body.options !== null) {
|
||||
tools.sendBackNotif(subscription, req.body.options);
|
||||
}
|
||||
});
|
||||
return res.send({data: 'Subscription saved.'});
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
});
|
||||
|
||||
|
||||
router.delete('/del', authenticate, (req, res) => {
|
||||
// tools.mylog("TOKENREM = " + req.token);
|
||||
const browser = req.get('User-Agent');
|
||||
Subscription.findOneAndRemove( { userId: req.user._id, access: req.access, browser } ).then(() => {
|
||||
Subscription.findOneAndRemove(
|
||||
{userId: req.user._id, access: req.access, browser}).then(() => {
|
||||
res.status(200).send();
|
||||
}, () => {
|
||||
res.status(400).send();
|
||||
});
|
||||
});
|
||||
|
||||
|
||||
|
||||
router.get('/', (req, res) => {
|
||||
res.json({
|
||||
data: 'Invalid Request Bad'
|
||||
data: 'Invalid Request Bad',
|
||||
});
|
||||
});
|
||||
|
||||
|
||||
@@ -352,7 +352,7 @@ router.post('/login', (req, res) => {
|
||||
.then(user => {
|
||||
if (user) {
|
||||
return user.generateAuthToken(req).then((token) => {
|
||||
var usertosend = User();
|
||||
var usertosend = new User();
|
||||
|
||||
shared_consts.fieldsUserToChange().forEach((field) => {
|
||||
usertosend[field] = user[field]
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user