Merge pull request #276 from tony-kerz/tk/nested-sort

support sort by nested field (e.g. _sort=author.name)
This commit is contained in:
typicode
2016-05-05 21:09:10 +02:00
2 changed files with 15 additions and 1 deletions

View File

@ -141,7 +141,7 @@ module.exports = function (db, name) {
_order = _order || 'ASC' _order = _order || 'ASC'
chain = chain.sortBy(function (element) { chain = chain.sortBy(function (element) {
return element[_sort] return _.get(element, _sort)
}) })
if (_order === 'DESC') { if (_order === 'DESC') {

View File

@ -47,6 +47,12 @@ describe('Server', function () {
{ a: 1 } { a: 1 }
] ]
db.nested = [
{resource: {name: 'dewey'}},
{resource: {name: 'cheatem'}},
{resource: {name: 'howe'}}
]
server = jsonServer.create() server = jsonServer.create()
router = jsonServer.router(db) router = jsonServer.router(db)
server.use(jsonServer.defaults()) server.use(jsonServer.defaults())
@ -198,6 +204,14 @@ describe('Server', function () {
.expect(db.posts.reverse()) .expect(db.posts.reverse())
.expect(200, done) .expect(200, done)
}) })
it('should sort on nested field', function (done) {
request(server)
.get('/nested?_sort=resource.name')
.expect('Content-Type', /json/)
.expect([db.nested[1], db.nested[0], db.nested[2]])
.expect(200, done)
})
}) })
describe('GET /:resource?_start=&_end=', function () { describe('GET /:resource?_start=&_end=', function () {