var db = require("../utils/database");
-var maild = require("../utils/mailer.js");
var genToken = require("../utils/tokenGenerator");
var params = require("../config/parameters");
+var sendEmail = require('../utils/mailer');
/*
* Structure:
const UserModel =
{
+ checkNameEmail: function(o)
+ {
+ if (typeof o.name === "string")
+ {
+ if (o.name.length == 0)
+ return "Empty name";
+ if (!o.name.match(/^[\w]+$/))
+ return "Bad characters in name";
+ }
+ if (typeof o.email === "string")
+ {
+ if (o.email.length == 0)
+ return "Empty email";
+ if (!o.email.match(/^[\w.+-]+@[\w.+-]+$/))
+ return "Bad characters in email";
+ }
+ },
+
// NOTE: parameters are already cleaned (in controller), thus no sanitization here
create: function(name, email, notify, callback)
{
});
},
+ getByIds: function(ids, cb) {
+ db.serialize(function() {
+ const query =
+ "SELECT id, name " +
+ "FROM Users " +
+ "WHERE id IN (" + ids + ")";
+ db.all(query, cb);
+ });
+ },
+
/////////
// MODIFY
db.run(query, cb);
});
},
+
+ /////////////////
+ // NOTIFICATIONS
+
+ tryNotify: function(oppId, message)
+ {
+ UserModel.getOne("id", oppId, (err,opp) => {
+ if (!err || !opp.notify)
+ return; //error is ignored here (TODO: should be logged)
+ const subject = "vchess.club - notification";
+ const body = "Hello " + opp.name + "!\n" + message;
+ sendEmail(params.mail.noreply, opp.email, subject, body, err => {
+ res.json(err || {});
+ });
+ });
+ }
}
module.exports = UserModel;