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]])
: 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 (
className,
objectId,
@@ -130,7 +144,7 @@ const findObjects = async (
}
if (options.limit !== 0) {
if (order) {
options.order = order;
options.order = transformOrder(order);
}
if (skip) {
options.skip = skip;

View File

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

View File

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