From 3344c01c7be00572a4a7854315698c855f5ecbb2 Mon Sep 17 00:00:00 2001 From: "Eng. Elias" Date: Thu, 29 Feb 2024 17:56:42 +0400 Subject: [PATCH] task agent validation: if agent is not in the crew, replace task agent with null --- src/app/api/graphql/resolvers.js | 8 ++------ src/components/modals/mission_modal.tsx | 16 +++++++++++++--- src/components/modals/new_mission_modal.tsx | 8 ++++++++ 3 files changed, 23 insertions(+), 9 deletions(-) diff --git a/src/app/api/graphql/resolvers.js b/src/app/api/graphql/resolvers.js index bc03e8d..5f8a503 100644 --- a/src/app/api/graphql/resolvers.js +++ b/src/app/api/graphql/resolvers.js @@ -62,9 +62,7 @@ const resolvers = { for (let task of body.tasks) { let agent = null; if (task.agent) { - agent = await prisma.agent.findFirst({ - where: { id: task.agent }, - }); + agent = crew.find((a) => a.id === task.agent) ?? null; } tasks.push({ ...task, @@ -97,9 +95,7 @@ const resolvers = { for (let task of body.tasks) { let agent = null; if (task.agent) { - agent = await prisma.agent.findFirst({ - where: { id: task.agent }, - }); + agent = crew.find((a) => a.id === task.agent) ?? null; } tasks.push({ ...task, diff --git a/src/components/modals/mission_modal.tsx b/src/components/modals/mission_modal.tsx index b4fd707..75883e0 100644 --- a/src/components/modals/mission_modal.tsx +++ b/src/components/modals/mission_modal.tsx @@ -127,14 +127,23 @@ export default function MissionModal(props: { value: agent.id, }))} multiple + value={tempMission.crew.map((agent) => agent.id!)} onValueChange={(event: any) => { const newValue = event.map((item: any) => item.value); const newCrew = agentsData.agents.filter( (agent: Agent) => newValue.includes(agent.id) ); + const newTasks = tempMission.tasks.map((task) => ({ + ...task, + agent: + newCrew.find( + (agent: Agent) => agent.id === task.agent?.id + ) ?? null, + })); setTempMission((prevState) => ({ ...prevState!, crew: newCrew, + tasks: newTasks, })); }} theme={selectTheme} @@ -208,8 +217,8 @@ export default function MissionModal(props: { {isEdit ? (
{ setTempMission(mission); }} @@ -267,7 +276,7 @@ export default function MissionModal(props: {