Method to access "other user" items
Solved
General
-
Hello,
Is there a way to access the items another user has in his inventory?
We are looking for something similar to https://getbraincloud.com/apidocs/apiref/#capi-useritems-getuseritem but for another user. -
Hi Claudiu,
It's possible to do this using cloud script... you just need to impersonate the other user...
Here's an example script that does this - caveat, it only returns the first page of user items.
Create the script, and set it's test parameters to:
{ "profileId": "www-xxx-yyy-zzzz-123456" }
(Note - you'll of course want to replace profileId with an id of a user that you want to test with.)
And here's the code...
var response = {}; // We need to impersonate another user to make this call var otherSession = bridge.getSessionForProfile( data.profileId ); var otherUserItemsProxy = bridge.getUserItemsServiceProxy( otherSession ); // Now, request the page of items from that proxy var context = { "pagination": { "rowsPerPage": 50, "pageNumber": 1 }, "searchCriteria": {}, "sortCriteria": { "createdAt": 1 } }; var includeDef = true; var itemResult = otherUserItemsProxy.getUserItemsPage( context, includeDef ); if (( itemResult.status == 200) && ( itemResult.data.results.count > 0 )) { response.items = itemResult.data.results.items; } else { response.items = []; } response;
For convenience I've attached an export of the script. You can import this script into your app from the Design | Cloud Code | Scripts screen.
Hope that helps!
Paul.