Skip to content

Commit

Permalink
fixObjectList
Browse files Browse the repository at this point in the history
  • Loading branch information
pavelbrui committed Aug 9, 2023
1 parent b1cc89d commit d638103
Show file tree
Hide file tree
Showing 3 changed files with 17 additions and 7 deletions.
18 changes: 14 additions & 4 deletions packages/integrations/gei-crud/src/Mutation/delete.ts
Original file line number Diff line number Diff line change
Expand Up @@ -24,11 +24,21 @@ export const handler = async (input: FieldResolveInput) =>
const prepareField = prepareRelatedField(input)?.replace(/[{ }]/g, '')?.split(":");
if(prepareField ){
const fieldForFounding = prepareField[0];

const fieldWithArray = prepareField[1] ? prepareField[1] : undefined
if(fieldWithArray&&!s[fieldWithArray]?.length) return null
db.collection(prepareRelatedModel(input))
.deleteMany( { [fieldForFounding]: (fieldWithArray? { $in: s[fieldWithArray]}
: s._id )})

if(!fieldWithArray){
db.collection(prepareRelatedModel(input)).updateMany(
{},
{ $pull: { [fieldForFounding]: s._id } }
);
return !!res.deletedCount
}
if(fieldWithArray&&!s[fieldWithArray]?.length) !!res.deletedCount

db.collection(prepareRelatedModel(input))
.deleteMany( { [fieldForFounding]: { $in: s[fieldWithArray]}
})
}
return !!res.deletedCount
});
4 changes: 2 additions & 2 deletions packages/integrations/gei-crud/src/Query/objects.ts
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ export const handler = async (input: FieldResolveInput) => {
...(ifValueIsArray(fieldFilter as QueryObject)),
...convertObjectToRegexFormat(ifValueIsArray(fieldRegexFilter) as QueryObject),
};

return db.collection(prepareModel(input)).find(filterInput).sort(field ? { [field]: sort?.order === false ? -1 : 1 } : { _id: 1 }).toArray();
});
};
Expand Down Expand Up @@ -56,7 +56,7 @@ function snakeCaseToCamelCase(input: string | null | undefined) {

function checkStringFields(obj: Record<string, unknown> | undefined): boolean {
for (const key in obj) {
if (typeof obj[key] === 'string') {
if (typeof obj[key] === 'string' || Array.isArray(obj[key])) {
return true;
}
}
Expand Down
2 changes: 1 addition & 1 deletion packages/integrations/gei-crud/src/data.ts
Original file line number Diff line number Diff line change
Expand Up @@ -58,7 +58,7 @@ export const prepareRelatedModel = (input: FieldResolveInput) => {

export const prepareRelatedField = (input: FieldResolveInput) => {
const { data } = getResolverData<{ relatedField: string }>(input);
const model = data?.relatedField.value;
const model = data?.relatedField?.value;
if (!model) {
throw new Error('Please specify a related field');
}
Expand Down

0 comments on commit d638103

Please sign in to comment.