From f2ead46580ed25637469a41b202e72a7cf6f3db4 Mon Sep 17 00:00:00 2001 From: Nikita Lutsenko Date: Mon, 7 Mar 2016 14:16:26 -0800 Subject: [PATCH] Remove .rawCollection method from DatabaseController. --- src/Adapters/Storage/Mongo/MongoCollection.js | 4 ++++ src/Controllers/DatabaseController.js | 6 +----- src/Controllers/PushController.js | 16 ++++++---------- 3 files changed, 11 insertions(+), 15 deletions(-) diff --git a/src/Adapters/Storage/Mongo/MongoCollection.js b/src/Adapters/Storage/Mongo/MongoCollection.js index f19705c4..78c90fef 100644 --- a/src/Adapters/Storage/Mongo/MongoCollection.js +++ b/src/Adapters/Storage/Mongo/MongoCollection.js @@ -64,6 +64,10 @@ export default class MongoCollection { return this._mongoCollection.update(query, update, { upsert: true }); } + updateMany(query, update) { + return this._mongoCollection.updateMany(query, update); + } + // Atomically find and delete an object based on query. // The result is the promise with an object that was in the database before deleting. // Postgres Note: Translates directly to `DELETE * FROM ... RETURNING *`, which will return data after delete is done. diff --git a/src/Controllers/DatabaseController.js b/src/Controllers/DatabaseController.js index 042a086d..83c2703a 100644 --- a/src/Controllers/DatabaseController.js +++ b/src/Controllers/DatabaseController.js @@ -35,7 +35,7 @@ DatabaseController.prototype.collection = function(className) { throw new Parse.Error(Parse.Error.INVALID_CLASS_NAME, 'invalid className: ' + className); } - return this.rawCollection(className); + return this.adapter.collection(this.collectionPrefix + className); }; DatabaseController.prototype.adaptiveCollection = function(className) { @@ -46,10 +46,6 @@ DatabaseController.prototype.collectionExists = function(className) { return this.adapter.collectionExists(this.collectionPrefix + className); }; -DatabaseController.prototype.rawCollection = function(className) { - return this.adapter.collection(this.collectionPrefix + className); -}; - DatabaseController.prototype.dropCollection = function(className) { return this.adapter.dropCollection(this.collectionPrefix + className); }; diff --git a/src/Controllers/PushController.js b/src/Controllers/PushController.js index 55cb6095..fb03ab52 100644 --- a/src/Controllers/PushController.js +++ b/src/Controllers/PushController.js @@ -63,23 +63,19 @@ export class PushController extends AdaptableController { let badgeUpdate = Promise.resolve(); if (body.badge) { - var op = {}; + let op = {}; if (body.badge == "Increment") { - op = {'$inc': {'badge': 1}} + op = { $inc: { badge: 1 } } } else if (Number(body.badge)) { - op = {'$set': {'badge': body.badge } } + op = { $set: { badge: body.badge } } } else { throw "Invalid value for badge, expected number or 'Increment'"; } let updateWhere = deepcopy(where); + updateWhere.deviceType = 'ios'; // Only on iOS! - // Only on iOS! - updateWhere.deviceType = 'ios'; - - // TODO: @nlutsenko replace with better thing - badgeUpdate = config.database.rawCollection("_Installation").then((coll) => { - return coll.update(updateWhere, op, { multi: true }); - }); + badgeUpdate = config.database.adaptiveCollection("_Installation") + .then(coll => coll.updateMany(updateWhere, op)); } return badgeUpdate.then(() => {