Skip to content

Commit 3ccda3e

Browse files
author
Gabriel Montalvo
committed
adds document view, update, delete methods
1 parent d5a2d83 commit 3ccda3e

File tree

1 file changed

+46
-3
lines changed

1 file changed

+46
-3
lines changed

index.js

Lines changed: 46 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
11
/* TODO
2-
View, update or delete a single document
32
Run database and collection-level commands
43
*/
54

@@ -109,13 +108,57 @@ var MongoLab = function (apiKey) {
109108
if (database == null || collectionName == null) {
110109
cb(new Error('invalid options'), null);
111110
} else {
112-
var res = httpReq.httpPUT(BASEURL + 'databases/' + database + '/collections/' + collectionName
113-
+ '?apiKey=' + this.APIKEY + (OPTIONAL_PARAMS.q ? '&q=' + OPTIONAL_PARAMS.q : ''), documents);
111+
var res = httpReq.httpPUT(BASEURL + 'databases/' + database + '/collections/' + collectionName +
112+
'?apiKey=' + this.APIKEY + (OPTIONAL_PARAMS.q ? '&q=' + OPTIONAL_PARAMS.q : ''), documents);
114113

115114
cb(null, res);
116115
}
117116
};
118117

118+
this.viewDocument = function (options, cb) {
119+
var database = options.database || null;
120+
var collectionName = options.collectionName || null;
121+
var id = options.id || null;
122+
123+
if (typeof id !== 'string' || id == null) {
124+
cb(new Error('document id is required'), null);
125+
} else {
126+
127+
var res = httpReq.httpGET(BASEURL + 'databases/' + database + '/collections/' + collectionName + '/' + id + '?apiKey=' + this.APIKEY);
128+
129+
cb(null, res);
130+
}
131+
};
132+
133+
this.updateDocument = function (options, cb) {
134+
var database = options.database || null;
135+
var collectionName = options.collectionName || null;
136+
var id = options.id || null;
137+
var updateObject = options.updateObject || null;
138+
139+
if (typeof id !== 'string' || id == null || updateObject == null) {
140+
cb(new Error('document id is required'), null);
141+
} else {
142+
var res = httpReq.httpPUT(BASEURL + 'databases/' + database + '/collections/' + collectionName + '/' + id + '?apiKey=' +
143+
this.APIKEY, updateObject);
144+
145+
cb(null, res);
146+
}
147+
};
148+
149+
this.deleteDocument = function (options, cb) {
150+
var database = options.database || null;
151+
var collectionName = options.collectionName || null;
152+
var id = options.id || null;
153+
154+
if (typeof id !== 'string' || id == null) {
155+
cb(new Error('document id is required'), null);
156+
} else {
157+
var res = httpReq.httpDELETE(BASEURL + 'databases/' + database + '/collections/' + collectionName + '/' + id + '?apiKey=' + this.APIKEY);
158+
159+
cb(null, res);
160+
}
161+
};
119162
}).call(MongoLab.prototype);
120163

121164
module.exports = MongoLab;

0 commit comments

Comments
 (0)