Skip to content

Commit

Permalink
read receipt added and ui changed
Browse files Browse the repository at this point in the history
  • Loading branch information
ChauhanAbhinav committed Sep 5, 2019
1 parent be48ff3 commit 5b567ad
Show file tree
Hide file tree
Showing 14 changed files with 250 additions and 166 deletions.
2 changes: 1 addition & 1 deletion server/db/dbUtil.js
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ let callback, db;
// exporting the mongo
mongo = {
connect: (callback)=> {
if(!db) MongoClient.connect(dbConfig.dbUrl.remoteUrl,{ useNewUrlParser: true }, function(err, client){
if(!db) MongoClient.connect(dbConfig.dbUrl.localUrl,{ useNewUrlParser: true }, function(err, client){

if(err) throw err;
console.log('Mongodb connected');
Expand Down
84 changes: 48 additions & 36 deletions server/db/services/user.service.js
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,6 @@ db = database;
});

// user services
// var Promise = require('promise');
let service = {};

let ifRegistered = (user)=>{
Expand All @@ -27,7 +26,6 @@ let ifRegistered = (user)=>{
}
else
{
// console.log('user found: ', user)
resolve(user);
}
}
Expand Down Expand Up @@ -59,14 +57,21 @@ let editDetails = (user)=>{
if (err) {
reject(err);
} else {
resolve(data);
db.collection('contacts').update({contact: user.mobile},{$set: {contactName: user.name}}, {multi:true}, function(err, data) {
if (err) {
reject(err);
} else {
resolve(data);
}
});
}
});

});
}

let getAllUsers = ()=>{

let getAllUsers = (user)=>{

return new Promise((resolve, reject)=>{

Expand All @@ -76,12 +81,10 @@ let getAllUsers = ()=>{
else {
if(data.length == 0) {
reject('No user found');

}
else
{
// console.log('user found: ', user)
resolve(data);
resolve(data);
}
}
});
Expand All @@ -94,12 +97,10 @@ let getUser = (mobile)=>{

db.collection('users').findOne({'mobile': Number(mobile)},{_id: false}, function(err, data) {
if (err){
// console.log('user found: ', err)
reject(err);}

else {
{
// console.log('user details : ', data)
resolve(data);
}
}
Expand All @@ -108,7 +109,6 @@ let getUser = (mobile)=>{
});
}
let addContact = (contactModel, nameUser)=>{
// console.log(contactModel);

return new Promise((resolve, reject)=>{
coll = db.collection('contacts');
Expand All @@ -133,15 +133,12 @@ let addContact = (contactModel, nameUser)=>{
let getAllContacts = (user)=>{

return new Promise((resolve, reject)=>{
// console.log(user);
db.collection('contacts').find({"mobile" : user}).toArray(function(err, data) {
db.collection('contacts').find({"mobile" : user}, {_id: false}).toArray(function(err, data) {
if (err)
reject(err);
else {
// console.log(data);
if(data.length == 0) {
reject('No user found');

}
else
{
Expand All @@ -155,19 +152,16 @@ let getAllContacts = (user)=>{
let getContact = (mobile, contact)=>{

return new Promise((resolve, reject)=>{
// console.log(data);
db.collection('contacts').find({ $and: [{'mobile' : mobile}, {'contact': contact}]}).toArray(function(err, data) {
if (err)
reject(err);
else {
// console.log(data);
if(data.length == 0) {
reject('No contact found');

}
else
{
// console.log('contact found: ', user)
resolve(data);
}
}
Expand All @@ -179,13 +173,11 @@ return new Promise((resolve, reject)=>{
let deleteContact = (mobile, contact)=>{

return new Promise((resolve, reject)=>{
// console.log(data);
db.collection('contacts').deleteOne({ $and: [{'mobile' : mobile}, {'contact': contact}]}, function(err, data) {
if (err)
reject(err);
else {
db.collection('contacts').deleteOne({ $and: [{'mobile' : contact}, {'contact': mobile}]}, function(err, data) {
// console.log('contact found: ', user)
if (err)
reject(err);
else{
Expand All @@ -204,32 +196,27 @@ let deleteContact = (mobile, contact)=>{
};

let createGroup = (mobile, contacts, group)=>{
// console.log(contacts);
document = [];
FLAG_ERROR = false;
contacts.forEach(cont => {
document.push({'mobile': cont, 'group': group});
});
// console.log(documents);

return new Promise((resolve, reject)=>{

coll = db.collection('groups');
coll.insertOne({'mobile': mobile, 'group': group}, function(err, data) {
if (err) {
FLAG_ERROR = true;
reject(err);
} else {
coll.insertMany(document, function(err, data) {
if(err) FLAG_ERROR = true;
if(err) {
FLAG_ERROR = true;
reject(err);
}
else {
groupInfo = db.collection('groupInfo');
groupInfo.insertOne({'group': group, 'members': contacts}, function(err, data) {
if(err) FLAG_ERROR = true;

if(FLAG_ERROR) reject('Group is not created succesfully')
else
resolve('Group created succesfully');
});
}
});
}
Expand All @@ -239,19 +226,16 @@ document.push({'mobile': cont, 'group': group});
let getAllGroups = (mobile)=>{

return new Promise((resolve, reject)=>{
// console.log(data);
db.collection('groups').find({'mobile' : mobile},{_id:0, mobile:0}).toArray(function(err, data) {
if (err)
reject(err);
else {
// console.log(data);
if(data.length == 0) {
reject('No group found');

}
else
{
// console.log('contact found: ', user)
resolve(data);
}
}
Expand All @@ -263,7 +247,7 @@ let getAllGroups = (mobile)=>{
let deleteGroup = (mobile, group)=>{

return new Promise((resolve, reject)=>{
// console.log(data);

db.collection('groups').deleteOne({ $and: [{'mobile' : mobile}, {'group': group}]}, function(err, data) {
if (err)
reject(err);
Expand All @@ -284,15 +268,15 @@ let getAllGroups = (mobile)=>{
});
}

let saveChat = (user, contact, room, msg)=>{
let saveChat = (user, contact, room, msg, messageId)=>{

return new Promise((resolve, reject)=>{
coll = db.collection('chatMessage');
// check if chat exist then update chat

getChat(room).then(function (data) {
// console.log(data);
data.messages.push({from: user, to: contact, message: msg});
data.messages.push({from: user, to: contact, messageId: messageId, message: msg, read: false});
coll.updateOne({'room': room}, {$set: {messages: data.messages}}, function(err, data) {
if (err) {
reject(err);
Expand All @@ -303,7 +287,7 @@ let saveChat = (user, contact, room, msg)=>{
resolve("message saved")
}, function(err) {
// if chat is not exist, then add
let chatSchema = {room: room, messages: [{from: user, to: contact, message: msg}]};
let chatSchema = {room: room, messages: [{from: user, to: contact,messageId: messageId, message: msg, read: false}]};
coll.insertOne(chatSchema, function(err, data) {
if (err) {
reject(err);
Expand Down Expand Up @@ -332,6 +316,33 @@ let getChat = (room)=>{

});
}
let updateRead = (room) => {
return new Promise((resolve, reject) => {
db.collection('chatMessage').findOne({'room' : room}, {'_id': 0, 'room': 0}, function(err, data) {
if (err)
reject(err);
else {
if(!data) {
reject('No chat found');
}
else
{
let messages = data.messages;
//update read of last message only
messages[messages.length -1].read = true;
db.collection('chatMessage').updateOne({'room': room}, {$set: {messages: messages}}, function(err, data) {
if (err) {
reject(err);
} else {
resolve("message updated");
}
});
}
}
});

})
}
// export service
service.ifRegistered = ifRegistered;
service.createUser = createUser;
Expand All @@ -347,4 +358,5 @@ service.deleteGroup = deleteGroup;
service.saveChat = saveChat;
service.getChat = getChat;
service.editDetails = editDetails;
service.updateRead = updateRead;
module.exports = service;
4 changes: 2 additions & 2 deletions server/routes/chatRoutes.js
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,8 @@ const router = express.Router();

let userService = require('../db/services/user.service');

router.get('/userslist',(req, res)=>{
userService.getAllUsers()
router.post('/userslist',(req, res)=>{
userService.getAllUsers(req.body.user)
.then(function (data) {
res.status(200).json(data);
}, function(err) {
Expand Down
Loading

0 comments on commit 5b567ad

Please sign in to comment.