feat: Allow Parse.Object pointers in Cloud Code arguments (#8490)
This commit is contained in:
@@ -1352,6 +1352,27 @@ describe('Cloud Code', () => {
|
|||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
|
it('allow cloud to encode Parse Objects', async () => {
|
||||||
|
const user = new Parse.User();
|
||||||
|
user.setUsername('username');
|
||||||
|
user.setPassword('password');
|
||||||
|
user.set('deleted', false);
|
||||||
|
await user.signUp();
|
||||||
|
Parse.Cloud.define(
|
||||||
|
'deleteAccount',
|
||||||
|
async req => {
|
||||||
|
expect(req.params.object instanceof Parse.Object).toBeTrue();
|
||||||
|
req.params.object.set('deleted', true);
|
||||||
|
await req.params.object.save(null, { useMasterKey: true });
|
||||||
|
return 'Object deleted';
|
||||||
|
},
|
||||||
|
{
|
||||||
|
requireMaster: true,
|
||||||
|
}
|
||||||
|
);
|
||||||
|
await Parse.Cloud.run('deleteAccount', { object: user.toPointer() }, { useMasterKey: true });
|
||||||
|
});
|
||||||
|
|
||||||
it('beforeSave should not affect fetched pointers', done => {
|
it('beforeSave should not affect fetched pointers', done => {
|
||||||
Parse.Cloud.beforeSave('BeforeSaveUnchanged', () => {});
|
Parse.Cloud.beforeSave('BeforeSaveUnchanged', () => {});
|
||||||
|
|
||||||
|
|||||||
@@ -18,6 +18,12 @@ function parseObject(obj) {
|
|||||||
return Object.assign(new Date(obj.iso), obj);
|
return Object.assign(new Date(obj.iso), obj);
|
||||||
} else if (obj && obj.__type == 'File') {
|
} else if (obj && obj.__type == 'File') {
|
||||||
return Parse.File.fromJSON(obj);
|
return Parse.File.fromJSON(obj);
|
||||||
|
} else if (obj && obj.__type == 'Pointer') {
|
||||||
|
return Parse.Object.fromJSON({
|
||||||
|
__type: 'Pointer',
|
||||||
|
className: obj.className,
|
||||||
|
objectId: obj.objectId,
|
||||||
|
});
|
||||||
} else if (obj && typeof obj === 'object') {
|
} else if (obj && typeof obj === 'object') {
|
||||||
return parseParams(obj);
|
return parseParams(obj);
|
||||||
} else {
|
} else {
|
||||||
|
|||||||
Reference in New Issue
Block a user