diff --git a/.gitignore b/.gitignore index aadbdd9..60fbac2 100644 --- a/.gitignore +++ b/.gitignore @@ -2,6 +2,7 @@ node_modules/ .env.test .env.development .env.production +.env.production.bak ESEMPI/ .idea package-lock.json diff --git a/server/config/config.js b/server/config/config.js index 40a38d2..ec3a42c 100644 --- a/server/config/config.js +++ b/server/config/config.js @@ -5,6 +5,7 @@ var file = `.env.${node_env}`; // GLOBALI (Uguali per TUTTI) process.env.LINKVERIF_REG = '/vreg'; process.env.LINK_REQUEST_NEWPASSWORD = '/requestnewpwd'; +process.env.LINK_CHECK_UPDATES = '/checkupdates'; process.env.LINK_UPDATE_PASSWORD = '/updatepwd'; process.env.NOME_APP1 = 'FreePlanet'; process.env.KEY_APP_ID='KKPPAA5KJK435J3KSS9F9D8S9F8SD98F9SDF'; diff --git a/server/models/cfgserver.js b/server/models/cfgserver.js new file mode 100644 index 0000000..a2b874a --- /dev/null +++ b/server/models/cfgserver.js @@ -0,0 +1,28 @@ +const mongoose = require('mongoose'); +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 +}); + + +const cfgserverSchema = new Schema({ + chiave: { + type: String, + required: true, + trim: true, + minlength: 1, + unique: true, + }, + valore: { + type: String, + }, +}); + +mongoose.model('cfgserver', cfgserverSchema); diff --git a/server/router/admin_router.js b/server/router/admin_router.js new file mode 100644 index 0000000..ba333bc --- /dev/null +++ b/server/router/admin_router.js @@ -0,0 +1,26 @@ +const express = require('express'); +const router = express.Router(); +const mongoose = require('mongoose'); +const cfgserver = mongoose.model('cfgserver'); + +const tools = require('../tools/general'); + +var { authenticate } = require('../middleware/authenticate'); + +router.post('/updateval', authenticate, (req, res) => { + console.log('/updateval', req.body.pairval); + pair = req.body.pairval; + + cfgserver.findOneAndUpdate({chiave: pair.chiave}, { $set: pair }, { new: false }).then((item) => { + // cfgserver.find({ chiave: pair.chiave }, (err, item) => { + res.status(200).send(); + }).catch(err => { + console.log('ERR:', err); + res.status(400).send(); + }) + + +}); + + +module.exports = router; diff --git a/server/router/index_router.js b/server/router/index_router.js index 7e703d9..e6f8705 100644 --- a/server/router/index_router.js +++ b/server/router/index_router.js @@ -1,9 +1,17 @@ const express = require('express'); const router = express.Router(); +var { authenticate } = require('../middleware/authenticate'); + +const { ObjectID } = require('mongodb'); + +var mongoose = require('mongoose'); +const cfgserver = mongoose.model('cfgserver'); + const _ = require('lodash'); -var {User} = require('../models/user'); +var { User } = require('../models/user'); + var server_constants = require('../tools/server_constants'); @@ -69,6 +77,33 @@ router.post(process.env.LINK_REQUEST_NEWPASSWORD, (req, res) => { }); +router.get(process.env.LINK_CHECK_UPDATES, authenticate, (req, res) => { + const userId = req.user._id; + + console.log("POST " + process.env.LINK_CHECK_UPDATES + " userId=" + userId); + + if (!ObjectID.isValid(userId)) { + return res.status(404).send(); + } + + cfgserver.find().then((arrcfgrec) => { + + if (!arrcfgrec) + return res.status(404).send(); + + // ++Todo: Add to Log Stat .... + + res.send({ cfgServer: arrcfgrec }); + + }).catch((e) => { + console.log(e); + res.status(400).send(); + res.send({ code: server_constants.RIS_CODE_ERR, msg: e }); + }); + +}); + + // Invio la Nuova Password richiesta dal reset! // Ritorna il token per poter effettuare le chiamate... router.post(process.env.LINK_UPDATE_PASSWORD, (req, res) => { diff --git a/server/router/subscribe_router.js b/server/router/subscribe_router.js index 5275636..e064363 100644 --- a/server/router/subscribe_router.js +++ b/server/router/subscribe_router.js @@ -27,7 +27,7 @@ const isValidSaveRequest = (req, res) => { }; router.post('/', authenticate, (req, res) => { - console.log('req.body.others', req.body.others); + // console.log('req.body.others', req.body.others); if (!isValidSaveRequest(req, res)) { return; @@ -52,8 +52,10 @@ router.post('/', authenticate, (req, res) => { if (myitem === null) { myitem = subscriptionModel; tools.mylogshow('Subscription NOT EXISTED IN DB, so I use this created!', myitem) - }else - tools.mylogshow('Subscription already Existed!', myitem) + } + + // else + // tools.mylogshow('Subscription already Existed!'); myitem.save((err, subscription) => { diff --git a/server/router/todos_router.js b/server/router/todos_router.js index 7fdcd44..4e9abe9 100644 --- a/server/router/todos_router.js +++ b/server/router/todos_router.js @@ -79,6 +79,7 @@ router.patch('/:id', authenticate, (req, res) => { } + Todo.findByIdAndUpdate(id, { $set: body }, { new: true }).then((todo) => { tools.mylogshow(' TODO TO MODIFY: ', todo.descr, todo.expiring_at); if (!todo) { diff --git a/server/server.js b/server/server.js index 393ea46..a8c046c 100644 --- a/server/server.js +++ b/server/server.js @@ -7,6 +7,7 @@ var fs = require('fs'); const port = process.env.PORT; + const express = require('express'); const bodyParser = require('body-parser'); const path = require('path'); @@ -26,6 +27,7 @@ if ((process.env.NODE_ENV === 'production') || (process.env.NODE_ENV === 'test') require('./models/todo'); require('./models/user'); require('./models/subscribers'); +require('./models/cfgserver'); const index_router = require('./router/index_router'); @@ -34,6 +36,7 @@ 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'); +const admin_router = require('./router/admin_router'); require('./db/mongoose'); @@ -45,6 +48,11 @@ var app = express(); const tools = require('./tools/general'); + +var mongoose = require('mongoose'); +const cfgserver = mongoose.model('cfgserver'); +const { ObjectID } = require('mongodb'); + // app.use(express.static(path.join(__dirname, 'client'))); app.use(bodyParser.json()); @@ -76,6 +84,7 @@ app.use('/push', push_router); app.use('/email', email_router); app.use('/todos', todos_router); app.use('/users', users_router); +app.use('/admin', admin_router); // catch 404 and forward to error handler // app.use(function (req, res, next) { @@ -115,6 +124,31 @@ if (process.env.PROD !== 1) { testmsgwebpush(); } +startserv(); + + +function populateDBadmin() { + const cfgserv = [{ + _id: new ObjectID(), + chiave: 'vers', + valore: '0.0.41' + }]; + + let cfg = new cfgserver(cfgserv[0]).save(); +} + +function startserv() { + + + // Check if is Empty (new Server Data) + cfgserver.count(function (err, count) { + if (!err && count === 0) { + populateDBadmin(); + } + }); + +} + function testmsgwebpush() { var { User } = require('./models/user'); // const tools = require('./tools/general'); diff --git a/server/tests/seed/seed.js b/server/tests/seed/seed.js index 4613049..fbf6aa1 100644 --- a/server/tests/seed/seed.js +++ b/server/tests/seed/seed.js @@ -162,6 +162,7 @@ const populateTodos = (done) => { }; + const populateUsers = (done) => { User.deleteMany({})