feat: update now detect already exists step

This commit is contained in:
Methapon Metanipat 2024-10-28 16:07:02 +07:00
parent af37ac850c
commit 6be298acfb

View file

@ -28,6 +28,7 @@ import { filterStatus } from "../services/prisma";
type WorkflowPayload = {
name: string;
step: {
id?: string;
name: string;
type?: string;
value?: string[];
@ -176,16 +177,33 @@ export class FlowTemplateController extends Controller {
...body,
statusOrder: +(body.status === "INACTIVE"),
step: {
deleteMany: {},
create: body.step.map((v, i) => ({
type: v.type,
name: v.name,
order: i + 1,
value: {
create: v.value?.map((val) => ({ value: val })),
deleteMany: {
id: { notIn: body.step.flatMap((v) => v.id || []) },
},
upsert: body.step.map((v, i) => ({
where: { id: v.id || "" },
create: {
type: v.type,
name: v.name,
order: i + 1,
value: {
create: v.value?.map((val) => ({ value: val })),
},
responsiblePerson: {
create: v.responsiblePersonId?.map((id) => ({ userId: id })),
},
id: undefined,
},
responsiblePerson: {
create: v.responsiblePersonId?.map((id) => ({ userId: id })),
update: {
type: v.type,
name: v.name,
order: i + 1,
value: {
create: v.value?.map((val) => ({ value: val })),
},
responsiblePerson: {
create: v.responsiblePersonId?.map((id) => ({ userId: id })),
},
},
})),
},