Skip to content

Commit 0c2dae1

Browse files
wuotrandrewimm
authored andcommitted
Made it possible to pass along the installationId (string) as property on the backbone style options object (especially on login() and signup().
1 parent 287560d commit 0c2dae1

File tree

3 files changed

+18
-2
lines changed

3 files changed

+18
-2
lines changed

src/CoreManager.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@ import type { PushData } from './Push';
2121
type RequestOptions = {
2222
useMasterKey?: boolean;
2323
sessionToken?: string;
24+
installationId?: string;
2425
};
2526
type AnalyticsController = {
2627
track: (name: string, dimensions: { [key: string]: string }) => ParsePromise;

src/ParseUser.js

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -365,6 +365,9 @@ export default class ParseUser extends ParseObject {
365365
if (options.hasOwnProperty('useMasterKey')) {
366366
signupOptions.useMasterKey = options.useMasterKey;
367367
}
368+
if (options.hasOwnProperty('installationId')) {
369+
signupOptions.installationId = options.installationId;
370+
}
368371

369372
var controller = CoreManager.getUserController();
370373
return controller.signUp(
@@ -395,6 +398,9 @@ export default class ParseUser extends ParseObject {
395398
if (options.hasOwnProperty('useMasterKey')) {
396399
loginOptions.useMasterKey = options.useMasterKey;
397400
}
401+
if (options.hasOwnProperty('installationId')) {
402+
loginOptions.installationId = options.installationId;
403+
}
398404

399405
var controller = CoreManager.getUserController();
400406
return controller.logIn(this, loginOptions)._thenRunCallbacks(options, this);

src/RESTController.js

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,13 +17,15 @@ import Storage from './Storage';
1717
export type RequestOptions = {
1818
useMasterKey?: boolean;
1919
sessionToken?: string;
20+
installationId?: string;
2021
};
2122

2223
export type FullOptions = {
2324
success?: any;
2425
error?: any;
2526
useMasterKey?: boolean;
2627
sessionToken?: string;
28+
installationId?: string;
2729
};
2830

2931
var XHR = null;
@@ -181,9 +183,16 @@ const RESTController = {
181183
payload._RevocableSession = '1';
182184
}
183185

184-
var installationController = CoreManager.getInstallationController();
186+
var installationId = options.installationId;
187+
var installationIdPromise;
188+
if (installationId && typeof installationId === 'string') {
189+
installationIdPromise = ParsePromise.as(installationId);
190+
} else {
191+
var installationController = CoreManager.getInstallationController();
192+
installationIdPromise = installationController.currentInstallationId();
193+
}
185194

186-
return installationController.currentInstallationId().then((iid) => {
195+
return installationIdPromise.then((iid) => {
187196
payload._InstallationId = iid;
188197
var userController = CoreManager.getUserController();
189198
if (options && typeof options.sessionToken === 'string') {

0 commit comments

Comments
 (0)