Support pointer in distinct query (#4471)

* Support pointer in distinct query

* extract transform pointer string
This commit is contained in:
Diamond Lewis
2017-12-29 21:32:40 -06:00
committed by GitHub
parent 7d773a5d8a
commit 6143988a82
4 changed files with 66 additions and 16 deletions

View File

@@ -1014,6 +1014,18 @@ const nestedMongoObjectToNestedParseObject = mongoObject => {
}
}
const transformPointerString = (schema, field, pointerString) => {
const objData = pointerString.split('$');
if (objData[0] !== schema.fields[field].targetClass) {
throw 'pointer to incorrect className';
}
return {
__type: 'Pointer',
className: objData[0],
objectId: objData[1]
};
}
// Converts from a mongo-format object to a REST-format object.
// Does not strip out anything based on a lack of authentication.
const mongoObjectToParseObject = (className, mongoObject, schema) => {
@@ -1126,15 +1138,7 @@ const mongoObjectToParseObject = (className, mongoObject, schema) => {
if (mongoObject[key] === null) {
break;
}
var objData = mongoObject[key].split('$');
if (objData[0] !== schema.fields[newKey].targetClass) {
throw 'pointer to incorrect className';
}
restObject[newKey] = {
__type: 'Pointer',
className: objData[0],
objectId: objData[1]
};
restObject[newKey] = transformPointerString(schema, newKey, mongoObject[key]);
break;
} else if (key[0] == '_' && key != '__type') {
throw ('bad key in untransform: ' + key);
@@ -1345,4 +1349,5 @@ module.exports = {
mongoObjectToParseObject,
relativeTimeToDate,
transformConstraint,
transformPointerString,
};