Skip to content

Commit f0705e9

Browse files
Merge pull request #42 from dadi/feature/id-plain-string
Convert ObjectIds to plain Strings before returning to API
2 parents 7f1efd5 + a5b3391 commit f0705e9

4 files changed

Lines changed: 34 additions & 9 deletions

File tree

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@
1111
## Requirements
1212

1313
* [DADI API](https://www.npmjs.com/package/@dadi/api) Version 3.0.0 or greater
14-
* a running MongoDB server
14+
* A running MongoDB server
1515

1616
## Usage
1717

lib/index.js

Lines changed: 16 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -164,7 +164,13 @@ DataStore.prototype.find = function ({ query, collection, options = {}, schema,
164164
if (err) return reject(err)
165165

166166
const returnData = {
167-
results: result,
167+
results: result.map(document => {
168+
if (document._id) {
169+
document._id = document._id.toString()
170+
}
171+
172+
return document
173+
}),
168174
metadata: this.getMetadata(options, count)
169175
}
170176

@@ -209,7 +215,15 @@ DataStore.prototype.insert = function ({data, collection, options = {}, schema,
209215
return reject(err)
210216
}
211217

212-
return resolve(result.ops)
218+
return resolve(
219+
result.ops.map(document => {
220+
if (document._id) {
221+
document._id = document._id.toString()
222+
}
223+
224+
return document
225+
})
226+
)
213227
})
214228
})
215229
}

test/unit/connect.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -204,7 +204,7 @@ describe('MongoDB Connection', function () {
204204
mongodb.connect().then(() => {
205205
}).catch((err) => {
206206
should.exist(err)
207-
err.toString().should.eql('MongoError: no primary found in replicaset')
207+
err.should.be.Error
208208
mongodb.connectionString.should.eql('mongodb://127.0.0.1:27017/testdb?replicaSet=test&readPreference=secondaryPreferred')
209209
done()
210210
})

test/unit/operations.js

Lines changed: 16 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -101,9 +101,10 @@ describe('MongoDB Operations', function () {
101101
result.should.be.Array
102102
result.length.should.eql(1)
103103
should.exist(result[0].fieldName)
104-
should.exist(result[0]._id);
105-
106-
(typeof result[0]._id).should.eql('object')
104+
should.exist(result[0]._id)
105+
result[0]._id.should.be.String
106+
result[0]._id.length.should.eql(24)
107+
should.equal(Object.keys(result[0]._id).length, 24)
107108
done()
108109
}).catch((err) => {
109110
done(err)
@@ -130,10 +131,16 @@ describe('MongoDB Operations', function () {
130131
should.exist(result[0].fieldName)
131132
should.exist(result[0]._id);
132133

133-
(typeof result[0]._id).should.eql('object')
134-
135134
result[0].fieldName.should.eql('foo')
135+
result[0]._id.length.should.eql(24)
136+
result[0]._id.should.be.String
137+
should.equal(Object.keys(result[0]._id).length, 24)
138+
136139
result[1].fieldName.should.eql('foo_1')
140+
result[1]._id.length.should.eql(24)
141+
result[1]._id.should.be.String
142+
should.equal(Object.keys(result[1]._id).length, 24)
143+
137144
done()
138145
}).catch((err) => {
139146
done(err)
@@ -175,6 +182,8 @@ describe('MongoDB Operations', function () {
175182
result.results.should.be.Array
176183
result.results.length.should.eql(1)
177184
result.results[0]._id.should.eql(inserted._id)
185+
result.results[0]._id.length.should.eql(24)
186+
Object.keys(result.results[0]._id).length.should.eql(24)
178187
done()
179188
})
180189
}).catch((err) => {
@@ -195,6 +204,8 @@ describe('MongoDB Operations', function () {
195204
result.results.should.be.Array
196205
result.results.length.should.eql(1)
197206
result.results[0]._id.should.eql(inserted._id)
207+
result.results[0]._id.length.should.eql(24)
208+
Object.keys(result.results[0]._id).length.should.eql(24)
198209
done()
199210
})
200211
}).catch((err) => {

0 commit comments

Comments
 (0)