Mutate is designed for batched writes.
final body = LaravelRestApiMutateBody(
mutate: [
Mutation(
operation: MutationOperation.create,
attributes: {'name': 'New item'},
),
Mutation(
operation: MutationOperation.update,
key: 10,
attributes: {'name': 'Updated name'},
),
],
);
final res = await repo.mutate(body: body);
print(res.data?.created);
print(res.data?.updated);
Relations must be grouped by table name, and multipleRelation becomes an array.
final body = LaravelRestApiMutateBody(
mutate: [
Mutation(
operation: MutationOperation.update,
key: 10,
attributes: {'name': 'Updated'},
relations: [
// 1:1 relation
MutationRelation(
table: 'author',
relationType: RelationType.singleRelation,
operation: MutationRelationOperation.attach,
key: 1,
),
// 1:N or N:N relation
MutationRelation(
table: 'tags',
relationType: RelationType.multipleRelation,
operation: MutationRelationOperation.sync,
key: 2,
),
MutationRelation(
table: 'tags',
relationType: RelationType.multipleRelation,
operation: MutationRelationOperation.sync,
key: 3,
),
],
),
],
);
await repo.mutate(body: body);