--- a/backend/webserver/api/c2net/controller.js
+++ b/backend/webserver/api/c2net/controller.js
@@ -1,158 +1,133 @@
'use strict';
-var logger;
-var core;
-var user = require('./db/user.js');
+var mongoose = require('mongoose');
+var logger, core, user, saveNotif, notificationChannel;
var socket = require('../../../ws/mobile.js');
-
-function sayHello (req, res) {
+var context = require('../../../../../../context');
+function sayHello(req, res) {
logger.info('Welcome to c2net!');
return res.json(200, {message: core.getMessage()});
}
-function sendNotification (req, res) {
+function createUserNotification(notification){
+
+ for(var i=0; i<notification.userEmail.length; i++){
+ console.log(notification.userEmail[i]);
+ user.findByEmail(notification.userEmail[i],function(err, u){
+ if(!u || err)
+ {
+ logger.info('User not found ...');
+ logger.debug(err);
+ return;
+ }
+ u.objectType = 'user';
+ logger.info("ID found by Email :" + u._id)
+ var data = {
+ title: notification.title,
+ author: u.id,
+ action: notification.body.substring(0,25)+'...',
+ object: notification.body,
+ link: notification.link,
+ level: "notification.level",
+ timestamps: new Date(),
+ target: [u],
+ data: {},
+ context: "context",
+ icon : notification.icon
+ };
+ saveNotif.save(data,function(err,notifData){
+ if(err)
+ {
+ console.log(err);
+ return;
+ }
+ });
+ var notif = {
+ title : notification.title,
+ body : notification.body,
+ component : notification.component,
+ link : notification.link,
+ userEmail : notification.userEmail[i],
+ icon : notification.icon,
+ type : notification.type
+ };
+ try{socket.emit(u._id, notif);
+ console.log("notification Handled by controller and emmited to socket.")
+ }
+ catch(err){
+ console.log("----emiter error:-----")
+ console.log(err)
+ }
+ });
+ }
+}
+
+
+function sendNotification(req, res){
+
+
+ createUserNotification(req.body);
+
+
+
+
+
+
+ //console.log(User.findById(req.user._id));
+
+ //console.log(saveNotif);
+
+ /*
var notif = {
- title: req.body.title,
+ title:req.body.title,
msg: req.body.msg,
status: 'unread',
type: req.body.type
};
- user.newNotification(req.body.userId, notif);
- socket.emit(req.body.userId, notif);
- return res.json(204, { message: 'User is notified!' });
+ user.newNotification(req.user._id, notif);
+ socket.emit(req.user._id, notif);
+ return res.json(204, {message:"User is notified!"});
+ */
+ return res.json(204, {message:"User is notified!"});
}
-module.exports = function (dependencies) {
+module.exports = function(dependencies) {
var PubSub = dependencies('pubsub').local;
var PubSubG = dependencies('pubsub').global;
+ saveNotif = dependencies('notification').notification;
+ user = dependencies('user');
+ logger = context.logger;
+ core = require('./core')(dependencies);
+
+ notificationChannel = context.requires.send_notifications;
+ console.log(notificationChannel);
+
+ notificationChannel.subscribe('C2NET_Notification');
+ notificationChannel.on('message', function(data){
+ createUserNotification(JSON.parse(data.toString()));
+ });
+
// User login ------------------------------------------------------------------------------
- PubSub.topic('login:success').subscribe(function (data) {
- logger.info('Login successfully!');
-
- // var notif = {
- // title: 'Login successfully',
- // msg: 'Welcome to C2NET!',
- // status: 'unread',
- // type: 'login'
- // };
-
+ PubSub.topic('login:success').subscribe(function(data) {
+ logger.info("Login successfully!");
+
+ var notif = {
+ title:'Login successfully',
+ msg: 'Welcome to C2NET!',
+ status: 'unread',
+ type: 'login'
+ };
+ // console.log(data)
// user.newNotification(data._id, notif);
// socket.emit(data._id, notif);
+
});
- PubSub.topic('login:failure').subscribe(function (data) {
- logger.info('Login failure!');
+
- // var notif = {
- // title: 'Login failure',
- // msg: 'You or someone was attempting to login with wrong password!',
- // status: 'unread',
- // type: 'login'
- // };
-
- // user.newNotification(data._id, notif);
- // socket.emit(data._id,notif);
- });
-
- // Community -------------------------------------------------------------------------------------------
- PubSub.topic('community:join').subscribe(function (data) {
- logger.info('Join community successfully!');
- });
-
- PubSub.topic('community:leave').subscribe(function (data) {
- logger.info('Leave community successfully!');
- });
-
- PubSub.topic('community:membership:invitation:cancel').subscribe(function (data) {
- logger.info('Cancel invitation of joining into the community!');
- });
-
- PubSub.topic('community:membership:invitation:decline').subscribe(function (data) {
- logger.info('Invitation of membership in the community is declined!');
- });
-
- PubSub.topic('community:membership:request:refuse').subscribe(function (data) {
- logger.info('The request of membership in the communicty is refused!');
- });
-
- PubSub.topic('community:membership:request:cancel').subscribe(function (data) {
- logger.info('The request of membership in the community is cannceled');
- });
-
- PubSub.topic('community:membership:invite').subscribe(function (data) {
- logger.info('There is an invitation of being a member in the community!');
- });
-
- PubSub.topic('community:membership:request').subscribe(function (data) {
- logger.info('There is a request of being a member in the community!');
- });
-
- // Notification -----------------------------------------------------------------------------
- PubSub.topic('notification:external').subscribe(function (data) {
- logger.info('notification!');
- });
-
- // message -------------------------------------------------------------------------
- PubSub.topic('message:activity').subscribe(function (data) {
- logger.info('Activity from message!');
- });
-
- PubSub.topic('message:stored').subscribe(function (data) {
- logger.info('Message stored!');
- });
-
- // invitation -------------------------------------------------------------------------
- PubSub.topic('invitation:init:failure').subscribe(function (data) {
- logger.info('Failure from initation of invitation!');
- });
-
- PubSub.topic('invitation:init:success').subscribe(function (data) {
- logger.info('Success from initation of invitation!');
- });
-
- PubSub.topic('invitation:finalize:failure').subscribe(function (data) {
- logger.info('Failure from finalization of invitation!');
- });
-
- PubSub.topic('invitation:finalize:success').subscribe(function (data) {
- logger.info('Success from finalization of invitation!');
- });
-
- PubSub.topic('invitation:process:failure').subscribe(function (data) {
- logger.info('Failure from process of invitation!');
- });
-
- PubSub.topic('invitation:process:success').subscribe(function (data) {
- logger.info('Success from process of invitation!');
- });
-
- // -----------------------------------------------------------------------------------------
- PubSubG.topic('usernotification:created').subscribe(function (data) {
- logger.info('usernotification:created');
- });
-
- // -----------------------------------------------------------------------------------------
- PubSubG.topic('message:activity').subscribe(function (data) {
- logger.info('message:activity');
- });
-
- // -----------------------------------------------------------------------------------------
- PubSubG.topic('message:stored').subscribe(function (data) {
- logger.info('message:stored');
- });
-
- // -----------------------------------------------------------------------------------------
- PubSub.topic('graceperiod:done').subscribe(function (data) {
- logger.info('************************************************');
- logger.info('graceperiod:done');
- logger.info(data);
- });
-
- logger = dependencies('logger');
- core = require('./core')(dependencies);
return {
sayHello: sayHello,
- sendNotification: sendNotification
- };
+ sendNotification:sendNotification
+ }
};