From 7f2315e4fd85b15e70c3d8d5dbb79a08e9048259 Mon Sep 17 00:00:00 2001 From: "Eng. Elias" Date: Sat, 16 Mar 2024 00:40:14 +0400 Subject: [PATCH] fix some bugs and enhance error handling --- src/app/api/graphql/crew_ai.js | 13 ++++++------- src/app/api/graphql/crew_ai.py | 11 +++-------- src/app/api/graphql/schema.ts | 8 +++++++- src/components/modals/mission_modal.tsx | 26 ++++++++++++++++--------- src/utils/graphql_queries.ts | 18 ++--------------- 5 files changed, 35 insertions(+), 41 deletions(-) diff --git a/src/app/api/graphql/crew_ai.js b/src/app/api/graphql/crew_ai.js index 4410465..cd6982d 100644 --- a/src/app/api/graphql/crew_ai.js +++ b/src/app/api/graphql/crew_ai.js @@ -21,14 +21,13 @@ export function runMission(id) { "run_mission", mission ); - if (error) { - throw new Error(message); + if (!error) { + await prisma.mission.update({ + where: { id }, + data: { result }, + }); } - const missionWithResult = prisma.mission.update({ - where: { id }, - data: { result }, - }); - return missionWithResult; + return { result, error, message }; } else { throw Error("Mission doest not exist"); } diff --git a/src/app/api/graphql/crew_ai.py b/src/app/api/graphql/crew_ai.py index 04afea4..594f7ee 100644 --- a/src/app/api/graphql/crew_ai.py +++ b/src/app/api/graphql/crew_ai.py @@ -16,7 +16,7 @@ load_dotenv() process_type = { "SEQUENTIAL": Process.sequential, - "HIERARTICAL": Process.hierarchical, + "HIERARCHICAL": Process.hierarchical, } tool_dict = { @@ -74,12 +74,7 @@ def run_mission(mission): ) result = crew.kickoff() - return { - "result": result - } + return {"result": result} except Exception as e: print(e) - return ({ - "error": True, - "message": str(e) - }) + return {"error": True, "message": str(e)} diff --git a/src/app/api/graphql/schema.ts b/src/app/api/graphql/schema.ts index 5ba3cc7..d122e5f 100644 --- a/src/app/api/graphql/schema.ts +++ b/src/app/api/graphql/schema.ts @@ -50,6 +50,12 @@ const typeDefs = `#graphql result: String } + type RunMissionResult { + result: String + error: Boolean + message: String + } + enum MissionProcess { SEQUENTIAL HIERARCHICAL @@ -103,7 +109,7 @@ const typeDefs = `#graphql deleteMission(id: Int!): DeleteOutput - runMission(id: Int!): Mission + runMission(id: Int!): RunMissionResult } `; diff --git a/src/components/modals/mission_modal.tsx b/src/components/modals/mission_modal.tsx index e606378..43f89e7 100644 --- a/src/components/modals/mission_modal.tsx +++ b/src/components/modals/mission_modal.tsx @@ -315,15 +315,23 @@ export default function MissionModal(props: { onClick={() => { handleRunMission() .then((missionData) => { - setMissionResult( - missionData.data.runMission.result - ); - ReactSwal.fire({ - title: "Finished", - text: "Mission finished successfully", - icon: "success", - }); - onRunMission(); + const { result, error, message } = + missionData.data.runMission; + if (!error) { + setMissionResult(result); + ReactSwal.fire({ + title: "Finished", + text: "Mission finished successfully", + icon: "success", + }); + onRunMission(); + } else { + ReactSwal.fire({ + title: "Error", + text: message, + icon: "error", + }); + } }) .catch((error) => { ReactSwal.fire({ diff --git a/src/utils/graphql_queries.ts b/src/utils/graphql_queries.ts index b88c5a4..d4f9a2f 100644 --- a/src/utils/graphql_queries.ts +++ b/src/utils/graphql_queries.ts @@ -259,23 +259,9 @@ export const DELETE_MISSION = gql` export const RUN_MISSION = gql` mutation RunMission($id: Int!) { runMission(id: $id) { - id - name - crew { - id - role - } - tasks { - name - description - agent { - id - role - } - } - verbose - process result + error + message } } `;