-
Notifications
You must be signed in to change notification settings - Fork 0
/
time.js
101 lines (91 loc) · 3.7 KB
/
time.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
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
/*
This is time.js.
It does the following:
1. Process instructions depending on methods given by server
2. Open up connections with MongoDB mLab database and perform CRUD operations
*/
var mongoose = require('mongoose');
var MongoClient = require('mongodb').MongoClient;
var TimeObject = require('./TimeObjectSchema');
/*
This function inserts/updates a document into "timedatabase" collection from MongoDB mLab.
If a document with already-existing id, it updates the document. Otherwise, it inserts a new document.
This function uses POST method.
*/
exports.createTime = function(req, res, next) {
var splitTime = (req.body.UTCTime).split(':'); //get UTCTime from body
var calculation = (parseInt(splitTime[0]) + parseInt(req.body.Zone)) % 24; //add UTC time with the offset
var currentTime = calculation.toString() + ':'+ splitTime[1] + ':' + splitTime[2]; //save the output in currentTime
//Creating Time object with schema based on TimeObjectSchema
var TimeModel = new TimeObject({
_id: parseInt(req.body._id),
UTCTime: req.body.UTCTime,
Zone: req.body.Zone,
CurrentTime: currentTime
});
console.log('Created/Updated:\n '+TimeModel + '\n');
//Open connection with MongoDB
MongoClient.connect('mongodb://id:[email protected]:37801/logdnarestify',function(err,db){
//Search collection named "timedatabase"
db.collection('timedatabase', function(err,collection){
//Insert or update the document
collection.save(TimeModel,function(err,savedData){
if (!err) {
res.json(TimeModel);
}
});
});
});
}
/*
This function searches a specific document with the user-requested id.
This function uses GET method.
*/
exports.viewTime = function(req, res, next) {
//Open connection with MongoDB
MongoClient.connect('mongodb://id:[email protected]:37801/logdnarestify',function(err,db){
//Search collection named "timedatabase"
db.collection('timedatabase', function(err,collection){
//Search document with the given id"
collection.find({'_id':parseInt(req.params.id)}).toArray(function(err,foundData){
if (err) {
res.status(500);
res.json({
type: false,
data: 'Error occured: ' + err
})
} else {
res.json(foundData);
}
});
});
});
}
/*
This function searches a specific document with the user-requested id and removes it from the database.
This function uses DELETE method.
*/
exports.deleteTime = function(req, res, next) {
//Open connection with MongoDB
MongoClient.connect('mongodb://id:[email protected]:37801/logdnarestify',function(err,db){
//Search collection named "timedatabase"
db.collection('timedatabase', function(err,collection){
console.log(req.params.id);
//Remove the document with the given id.
collection.remove({'_id':parseInt(req.params.id)},function(err,foundData){
if (err) {
res.status(500);
res.json({
type: false,
data: 'Error occured: ' + err
})
} else {
res.json({
type: true,
data: 'TimeObject: ' + req.params.id + ' deleted successfully'
})
}
});
});
});
}