Files
twenty/packages/twenty-server/test/integration/graphql/utils/merge-many-operation-factory.util.ts
T
neo773 ad944e1d2c merge records composite type (#14005)
/closes #13989

---------

Co-authored-by: Charles Bochet <charles@twenty.com>
2025-09-08 17:50:26 +02:00

37 lines
939 B
TypeScript

import gql from 'graphql-tag';
import { capitalize } from 'twenty-shared/utils';
type MergeManyOperationFactoryParams = {
objectMetadataPluralName: string;
gqlFields: string;
ids: string[];
conflictPriorityIndex: number;
dryRun?: boolean;
};
export const mergeManyOperationFactory = ({
objectMetadataPluralName,
gqlFields,
ids,
conflictPriorityIndex,
dryRun = false,
}: MergeManyOperationFactoryParams) => {
const capitalizedObjectName = capitalize(objectMetadataPluralName);
const mutationName = `merge${capitalizedObjectName}`;
return {
query: gql`
mutation Merge${capitalizedObjectName}($ids: [UUID!]!, $conflictPriorityIndex: Int!, $dryRun: Boolean! = false) {
${mutationName}(ids: $ids, conflictPriorityIndex: $conflictPriorityIndex, dryRun: $dryRun) {
${gqlFields}
}
}
`,
variables: {
ids,
conflictPriorityIndex,
dryRun,
},
};
};