- add: createPushSubscription :

'Subscribed to FreePlanet.app!',
  'You can now receive Notification and Messages.'
This commit is contained in:
Paolo Arena
2019-02-05 18:17:44 +01:00
parent 8e5e7addb7
commit db2a460594
11 changed files with 38 additions and 42 deletions

View File

@@ -3,7 +3,7 @@ var {User} = require('../models/user');
var authenticate = (req, res, next) => {
var token = req.header('x-auth');
console.log("TOKEN = " + token);
// console.log("TOKEN = " + token);
User.findByToken(token).then((user) => {
if (!user) {

View File

@@ -4,6 +4,8 @@ const Schema = mongoose.Schema;
mongoose.Promise = global.Promise;
mongoose.level = "F";
const { ObjectID } = require('mongodb');
// Resolving error Unknown modifier: $pushAll
mongoose.plugin(schema => {
schema.options.usePushEach = true
@@ -13,6 +15,7 @@ mongoose.plugin(schema => {
const SubscriberSchema = new Schema({
endpoint: String,
keys: Schema.Types.Mixed,
userId: String,
createDate: {
type: Date,
default: Date.now

View File

@@ -67,7 +67,7 @@ TodoSchema.methods.toJSON = function () {
var todo = this;
var todoObject = todo.toObject();
console.log(todoObject);
// console.log(todoObject);
return _.pick(todoObject, ['_id', 'userId', 'pos', 'category', 'descr', 'priority', 'completed', 'created_at', 'modify_at',
'completed_at', 'expiring_at', 'enableExpiring', 'id_prev', 'id_next', 'progress', 'modified']);

View File

@@ -82,7 +82,7 @@ UserSchema.methods.toJSON = function () {
};
UserSchema.methods.generateAuthToken = function () {
console.log("GENERA TOKEN : ");
// console.log("GENERA TOKEN : ");
var user = this;
var access = 'auth';
var token = jwt.sign({ _id: user._id.toHexString(), access }, process.env.SIGNCODE).toString();
@@ -130,8 +130,8 @@ UserSchema.statics.findByCredentials = function (username, password) {
return new Promise((resolve, reject) => {
// Use bcrypt.compare to compare password and user.password
console.log("pwd1 " + password);
console.log("pwd2 " + pwd);
// console.log("pwd1 " + password);
// console.log("pwd2 " + pwd);
bcrypt.compare(password, pwd, (err, res) => {
if (res) {
resolve(user);

View File

@@ -23,6 +23,7 @@ router.post('/', (req, res) => {
res.status(500).json({
error: 'Technical error occurred'
});
} else {
let parallelSubscriptionCalls = subscriptions.map((subscription) => {
return new Promise((resolve, reject) => {

View File

@@ -5,7 +5,7 @@ const Subscription = mongoose.model('subscribers');
const webpush = require('web-push');
router.post('/', (req, res) => {
const subscriptionModel = new Subscription(req.body);
const subscriptionModel = new Subscription(req.body.subs);
subscriptionModel.save((err, subscription) => {
if (err) {
console.error(`Error occurred while saving subscription. Err: ${err}`);
@@ -16,25 +16,16 @@ router.post('/', (req, res) => {
// Send 201 - resource created
res.status(201).json({ data: 'Subscription saved.' });
sendBackNotif(subscription)
sendBackNotif(subscription, req.body.options)
}
});
});
function sendBackNotif(subscription) {
// Create payload
const payload = JSON.stringify(
{
title: 'New Post HOLAAAA',
content: 'New Post added HOLAAAA!',
openUrl: '/help'
}
);
function sendBackNotif(subscription, payload) {
console.log('payload');
// Pass object into sendNotification
webpush.sendNotification(subscription, payload).catch(err => console.error(err));
webpush.sendNotification(subscription, JSON.stringify(payload)).catch(err => console.error(err));
}

View File

@@ -17,11 +17,12 @@ const allfieldTodoWithId = ['_id', ...allfieldTodo];
router.post('/:id', authenticate, (req, res) => {
console.log('POST ', req.body);
var body = _.pick(req.body, allfieldTodoWithId);
var todo = new Todo(body);
console.log('POST ', todo.descr);
todo.modified = false;
if (!todo.descr) {
console.log('RECORD NON VALIDO !?', req.body)
@@ -83,7 +84,7 @@ function sendNotificationToUser(title, content, openUrl) {
router.get('/:userId', authenticate, (req, res) => {
var userId = req.params.userId;
console.log('GET : ', req, req.params);
console.log('GET : ', req.params);
// Extract all the todos of the userId only
Todo.findAllByUserId(userId).then((todos) => {

View File

@@ -14,8 +14,8 @@ router.post('/', (req, res) => {
var body = _.pick(req.body, ['email', 'password', 'username', 'idapp', 'keyappid', 'lang']);
var user = new User(body);
console.log("LANG PASSATO = " + user.lang);
console.log("IDAPP = " + user.idapp);
// console.log("LANG PASSATO = " + user.lang);
// console.log("IDAPP = " + user.idapp);
user.linkreg = reg.getlinkregByEmail(body.email, body.username);
user.verified_email = false;
@@ -91,13 +91,13 @@ router.post('/login', (req, res) => {
usertosend.userId = user._id.toHexString();
usertosend.verified_email = user.verified_email;
console.log("user.verified_email:" + user.verified_email);
console.log("usertosend.userId", usertosend.userId);
// console.log("user.verified_email:" + user.verified_email);
// console.log("usertosend.userId", usertosend.userId);
console.log("usertosend:");
console.log(usertosend);
// console.log("usertosend:");
// console.log(usertosend);
res.header('x-auth', token).send(usertosend);
console.log("TROVATOOO!");
// console.log("TROVATOOO!");
});
}
}).catch((e) => {

View File

@@ -29,12 +29,12 @@ require('./models/subscribers');
const { ObjectID } = require('mongodb');
const index = require('./router');
const push = require('./router/push');
const subscribe = require('./router/subscribe');
const email = require('./router/email');
const todos = require('./router/todos');
const users = require('./router/users');
const index_router = require('./router/index_router');
const push_router = require('./router/push_router');
const subscribe_router = require('./router/subscribe_router');
const email_router = require('./router/email_router');
const todos_router = require('./router/todos_router');
const users_router = require('./router/users_router');
require('./db/mongoose');
@@ -82,12 +82,12 @@ webpush.setVapidDetails('mailto:' + process.env.EMAIL_FROM, publicVapidKey, priv
// Use Routes
app.use('/', index);
app.use('/subscribe', subscribe);
app.use('/push', push);
app.use('/email', email);
app.use('/todos', todos);
app.use('/users', users);
app.use('/', index_router);
app.use('/subscribe', subscribe_router);
app.use('/push', push_router);
app.use('/email', email_router);
app.use('/todos', todos_router);
app.use('/users', users_router);
// catch 404 and forward to error handler
@@ -106,7 +106,7 @@ app.use(function (req, res, next) {
if (app.get('env') === 'development') {
app.use(function (err, req, res, next) {
console.log('Error: ', err.message)
console.trace();
// console.trace();
res.status(err.status || 500).send({error: err.message});
// res.render('error', {
// message: err.message,
@@ -145,7 +145,7 @@ if (process.env.TEST_ATTIVO) {
function eseguitest() {
if (true) {
if (false) {
console.log("ESEGUI I TEST:");
console.log("linkreg = " + sendemail.getlinkReg(1, "myusername"));
}