GraphQL: Change Order Enum Strategy (#6515)

* fix merged enum

* fix
This commit is contained in:
Antoine Cormouls
2020-03-23 09:02:52 +01:00
committed by GitHub
parent c178acd347
commit 1b8f057904
3 changed files with 19 additions and 8 deletions

View File

@@ -8,6 +8,20 @@ const needToGetAllKeys = (fields, keys) =>
? !!keys.split(',').find(keyName => !fields[keyName.split('.')[0]]) ? !!keys.split(',').find(keyName => !fields[keyName.split('.')[0]])
: true; : true;
const transformOrder = order =>
order
.map(o => {
const direction = o.indexOf('_ASC') > 0 ? '_ASC' : '_DESC';
let field = o.replace(direction, '');
field = field === 'id' ? 'objectId' : field;
if (direction === '_ASC') {
return `${field}`;
} else {
return `-${field}`;
}
})
.join(',');
const getObject = async ( const getObject = async (
className, className,
objectId, objectId,
@@ -130,7 +144,7 @@ const findObjects = async (
} }
if (options.limit !== 0) { if (options.limit !== 0) {
if (order) { if (order) {
options.order = order; options.order = transformOrder(order);
} }
if (skip) { if (skip) {
options.skip = skip; options.skip = skip;

View File

@@ -125,12 +125,11 @@ const load = function(
.filter(field => field.startsWith('edges.node.')) .filter(field => field.startsWith('edges.node.'))
.map(field => field.replace('edges.node.', '')) .map(field => field.replace('edges.node.', ''))
); );
const parseOrder = order && order.join(',');
return await objectsQueries.findObjects( return await objectsQueries.findObjects(
className, className,
where, where,
parseOrder, order,
skip, skip,
first, first,
after, after,

View File

@@ -347,12 +347,11 @@ const load = (
const updatedSortFields = { const updatedSortFields = {
...sortFields, ...sortFields,
}; };
const value = field === 'id' ? 'objectId' : field;
if (asc) { if (asc) {
updatedSortFields[`${field}_ASC`] = { value }; updatedSortFields[`${field}_ASC`] = {};
} }
if (desc) { if (desc) {
updatedSortFields[`${field}_DESC`] = { value: `-${value}` }; updatedSortFields[`${field}_DESC`] = {};
} }
return updatedSortFields; return updatedSortFields;
}, {}), }, {}),
@@ -434,7 +433,6 @@ const load = (
.filter(field => field.startsWith('edges.node.')) .filter(field => field.startsWith('edges.node.'))
.map(field => field.replace('edges.node.', '')) .map(field => field.replace('edges.node.', ''))
); );
const parseOrder = order && order.join(',');
return objectsQueries.findObjects( return objectsQueries.findObjects(
source[field].className, source[field].className,
@@ -449,7 +447,7 @@ const load = (
}, },
...(where || {}), ...(where || {}),
}, },
parseOrder, order,
skip, skip,
first, first,
after, after,