aboutsummaryrefslogtreecommitdiff
path: root/node_simple.js
diff options
context:
space:
mode:
authornanalelfe <nargiza.nosirova@mail.utoronto.ca>2016-07-24 05:49:46 +0000
committernanalelfe <nargiza.nosirova@mail.utoronto.ca>2016-07-24 05:49:46 +0000
commit0c785ab730997972b573c48d25f958dea5ad62b9 (patch)
treeb3404d890cc33c5d6e1f0954785aa6766a48a154 /node_simple.js
parent43f7514bb2ae00d3805f1468f89bbdab6fc595fa (diff)
Implemented messaging system. Form neesds to be fixed
Diffstat (limited to 'node_simple.js')
-rw-r--r--node_simple.js68
1 files changed, 64 insertions, 4 deletions
diff --git a/node_simple.js b/node_simple.js
index 2976b58..cf5c372 100644
--- a/node_simple.js
+++ b/node_simple.js
@@ -157,7 +157,6 @@ exports.retrieveFollows = function (user_name, callback) {
});
};
-
// will add comments ASAP
/* callback(success, data/message) => callback(boolean, object/String);
*
@@ -279,7 +278,7 @@ exports.add_user = function (fields, callbackUser) {
if (result == false) {
// find out if the user_name is taken
- exports.find_user_name( fields[1], callbackUser, function (docs) {
+ exports.find_user_name( fields[1], function (docs) {
if (docs == false) { // if not ...
// continue
console.log("user name is valid");
@@ -333,7 +332,7 @@ exports.add_user = function (fields, callbackUser) {
* This (helper) function returns true IFF user_name already exists in the database
* Params: user_name - the user name
* */
-exports.find_user_name = function (user_name, callbackUser, callback) {
+exports.find_user_name = function (user_name, callback) {
// make a connection
mongoFactory.getConnection(uri)
.then(function (db) {
@@ -961,7 +960,7 @@ exports.addAdmin = function (admin_data, callback) {
console.log("inside addAdmin");
- // Check if the admin username already exists. If it does, then we don't add the admin_data and return a message.
+ // Check if the admin username already exists. Also check for user username. If it does, then we don't add the admin_data and return a message.
exports.adminExists( admin_data.username , function (error, exists, data, message) {
console.log("adminExists: " + message);
if (!exists && !error) {
@@ -1018,7 +1017,68 @@ exports.adminExists = function (username, callback) {
};
+/****************************** MAIL *********************************/
+
+/*
+ * mail_data = {
+ * sender: sender_username,
+ * receiver: receiver_username,
+ * message: message,
+ * date: date,
+ * }
+ *
+ * callback(success, error, message)
+ *
+ */
+
+exports.sendMail = function (mail_data, callback) {
+ exports.find_user_name(mail_data.receiver, function (exist){
+ if (exist) {
+ mongoFactory.getConnection(uri).then(function(db) {
+ var mail = db.collection('mail');
+
+ mail.insertOne(mail_data, function(err) {
+ if (err) {
+ callback(false, true, 'Error: could not send message.');
+ db.close();
+ }
+ else {
+ callback(true, false, "Message sent.");
+ db.close();
+ }
+ });
+ });
+ } else {
+ callback(false, false, 'The receiver\'s username is undefined.');
+ }
+ });
+}
+/*
+ *
+ * callback(success, error, data, message)
+ * Returns the user's inbox (array of message objects)
+ *
+ */
+
+exports.checkMailbox = function (username, callback) {
+
+ mongoFactory.getConnection(uri).then(function(db) {
+
+ var mail = db.collection('mail');
+
+ mail.find({receiver: username}).toArray(function (err, data) {
+ if (err) {
+ callback(false, true, null, 'Error: could not retrieve inbox messages.');
+ } else if (!data) {
+ callback(false, false, null, 'No inbox.');
+ } else {
+ callback(true, false, data, 'Retrieved inbox');
+ }
+ });
+ });
+
+}