forked from kingswisdom/SteemMessenger
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathserverdb.js
60 lines (51 loc) · 1.51 KB
/
serverdb.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
const mongo = require('mongodb').MongoClient;
const url = process.env.MONGO_URI || "mongodb://127.0.0.1/steemMessenger";
mongo.connect(url, function(err, db){
if(err){
console.log(err);
}
else {
console.log('MongoDB connected...');
}
var chat = db.collection('chats');
var latestMessages = db.collection('latestMessages');
exports.getMessages = function(data, limit, out){
var query = chat.find({tags: { $all: [data.user, data.receiver]}});
query.limit(limit).sort({timestamp:1}).toArray(function(err, res){
console.log
out(err, res);
});
}
exports.getLastMessage = function(data, out){
var query = chat.find({tags: { $all: [data.user, data.receiver]}});
query.limit(1).sort({timestamp:-1}).toArray(function(err, res){
out(err, res);
});
}
exports.getLatestMessages = function(data, out){
var query = latestMessages.find({tags: { $all: [data.user]}});
query.limit(1).sort({timestamp:-1}).toArray(function(err, res){
out(err, res);
});
}
exports.saveMessage = function(data){
chat.insert({
"from": data.name,
"to": data.to,
"tags": [data.name, data.to],
"message": data.message,
"timestamp": Date.now()
});
latestMessages.remove({tags: { $all: [data.user, data.to]}});
latestMessages.insert({
"from": data.name,
"to": data.to,
"tags": [data.name, data.to],
"message": data.message,
"timestamp": Date.now()
});
}
exports.deleteDiscussion = function(data){
chat.remove({from:data.name, to:data.to});
}
});