Context : Large PR with 600+ test files. Enable connect and disconnect logic in createMany (upsert true) / updateOne / updateMany resolvers - Add disconnect logic - Gather disconnect and connect logic -> called relation nested queries - Move logic to query builder (insert and update one) with a preparation step in .set/.values and an execution step in .execute - Add integration tests Test : - Test API call on updateMany, updateOne, createMany (upsert:true) with connect/disconnect
31 lines
772 B
TypeScript
31 lines
772 B
TypeScript
import gql from 'graphql-tag';
|
|
import { capitalize } from 'twenty-shared/utils';
|
|
|
|
type CreateManyOperationFactoryParams = {
|
|
objectMetadataSingularName: string;
|
|
objectMetadataPluralName: string;
|
|
gqlFields: string;
|
|
data?: object;
|
|
upsert?: boolean;
|
|
};
|
|
|
|
export const createManyOperationFactory = ({
|
|
objectMetadataSingularName,
|
|
objectMetadataPluralName,
|
|
gqlFields,
|
|
data = {},
|
|
upsert = false,
|
|
}: CreateManyOperationFactoryParams) => ({
|
|
query: gql`
|
|
mutation Create${capitalize(objectMetadataSingularName)}($data: [${capitalize(objectMetadataSingularName)}CreateInput!]!, $upsert: Boolean) {
|
|
create${capitalize(objectMetadataPluralName)}(data: $data, upsert: $upsert) {
|
|
${gqlFields}
|
|
}
|
|
}
|
|
`,
|
|
variables: {
|
|
data,
|
|
upsert,
|
|
},
|
|
});
|