From 54dfcdc07744779c3ced7ccb2f817a875f053ed5 Mon Sep 17 00:00:00 2001 From: Florent Vilmart Date: Wed, 24 Jan 2018 14:08:40 -0500 Subject: [PATCH 1/2] Fixes issue affecting sorting in beforeFind --- spec/CloudCode.spec.js | 27 +++++++++++++++++++++++++++ src/triggers.js | 4 ++++ 2 files changed, 31 insertions(+) diff --git a/spec/CloudCode.spec.js b/spec/CloudCode.spec.js index 7ee53ca27c..b6d42513e2 100644 --- a/spec/CloudCode.spec.js +++ b/spec/CloudCode.spec.js @@ -1472,6 +1472,33 @@ describe('beforeFind hooks', () => { }); }); + it('should handle sorting where', (done) => { + Parse.Cloud.beforeFind('MyObject', (req) => { + const query = req.query; + query.ascending('score'); + console.log(query); + return query; + }); + + const count = 20; + const objects = []; + while (objects.length != count) { + const object = new Parse.Object('MyObject'); + object.set('score', Math.floor(Math.random() * 100)); + objects.push(object); + } + Parse.Object.saveAll(objects).then(() => { + const query = new Parse.Query('MyObject'); + return query.find(); + }).then((objects) => { + let lastScore = -1; + objects.forEach((element) => { + expect(element.get('score') >= lastScore).toBe(true); + lastScore = element.get('score'); + }); + }).then(done).catch(done.fail); + }); + it('should add beforeFind trigger using get API',(done) => { const hook = { method: function(req) { diff --git a/src/triggers.js b/src/triggers.js index a11a71f7f4..f8f0e6e89f 100644 --- a/src/triggers.js +++ b/src/triggers.js @@ -356,6 +356,10 @@ export function maybeRunQueryTrigger(triggerType, className, restWhere, restOpti restOptions = restOptions || {}; restOptions.keys = jsonQuery.keys; } + if (jsonQuery.order) { + restOptions = restOptions || {}; + restOptions.order = jsonQuery.order; + } if (requestObject.readPreference) { restOptions = restOptions || {}; restOptions.readPreference = requestObject.readPreference; From 3db37fa36bb52e2c5cebb14b1a9e37677577a484 Mon Sep 17 00:00:00 2001 From: Florent Vilmart Date: Wed, 24 Jan 2018 15:14:51 -0500 Subject: [PATCH 2/2] Update CloudCode.spec.js --- spec/CloudCode.spec.js | 1 - 1 file changed, 1 deletion(-) diff --git a/spec/CloudCode.spec.js b/spec/CloudCode.spec.js index b6d42513e2..307e97e9a6 100644 --- a/spec/CloudCode.spec.js +++ b/spec/CloudCode.spec.js @@ -1476,7 +1476,6 @@ describe('beforeFind hooks', () => { Parse.Cloud.beforeFind('MyObject', (req) => { const query = req.query; query.ascending('score'); - console.log(query); return query; });