Skip to content

Commit 5f7e8b0

Browse files
committed
Merge pull request typicode#276 from tony-kerz/tk/nested-sort
support sort by nested field (e.g. _sort=author.name)
2 parents 1127cab + 4db6727 commit 5f7e8b0

File tree

2 files changed

+15
-1
lines changed

2 files changed

+15
-1
lines changed

src/server/router/plural.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -141,7 +141,7 @@ module.exports = function (db, name) {
141141
_order = _order || 'ASC'
142142

143143
chain = chain.sortBy(function (element) {
144-
return element[_sort]
144+
return _.get(element, _sort)
145145
})
146146

147147
if (_order === 'DESC') {

test/server/plural.js

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,12 @@ describe('Server', function () {
4747
{ a: 1 }
4848
]
4949

50+
db.nested = [
51+
{resource: {name: 'dewey'}},
52+
{resource: {name: 'cheatem'}},
53+
{resource: {name: 'howe'}}
54+
]
55+
5056
server = jsonServer.create()
5157
router = jsonServer.router(db)
5258
server.use(jsonServer.defaults())
@@ -198,6 +204,14 @@ describe('Server', function () {
198204
.expect(db.posts.reverse())
199205
.expect(200, done)
200206
})
207+
208+
it('should sort on nested field', function (done) {
209+
request(server)
210+
.get('/nested?_sort=resource.name')
211+
.expect('Content-Type', /json/)
212+
.expect([db.nested[1], db.nested[0], db.nested[2]])
213+
.expect(200, done)
214+
})
201215
})
202216

203217
describe('GET /:resource?_start=&_end=', function () {

0 commit comments

Comments
 (0)