From 0d81e8cfa574cfa2023aedb57981235b09865a75 Mon Sep 17 00:00:00 2001 From: Hyeseong Kim Date: Fri, 7 Jun 2024 20:09:39 +0900 Subject: [PATCH] websites-integration: polish error messages --- .../functions/deployments/[id]/callback.ts | 18 ++++++++----- .../deployments/[id]/download-artifact.ts | 10 +++---- .../functions/deployments/[id]/index.ts | 26 +++++++++++-------- 3 files changed, 32 insertions(+), 22 deletions(-) diff --git a/_workers/websites-integration/functions/deployments/[id]/callback.ts b/_workers/websites-integration/functions/deployments/[id]/callback.ts index 16211138d..8c8fc3705 100644 --- a/_workers/websites-integration/functions/deployments/[id]/callback.ts +++ b/_workers/websites-integration/functions/deployments/[id]/callback.ts @@ -10,23 +10,29 @@ export const onRequestPost: PagesFunction = async (context) => { try { deploymentId = context.env.DEPLOYMENT.idFromString(paramId); } catch { - return json({ id: paramId, message: 'Bad request (invalid id format)' }, { status: 400 }); + return json({ id: paramId, message: 'Invalid ID format' }, { status: 400 }); } let stub: DurableObjectStub; try { stub = context.env.DEPLOYMENT.get(deploymentId); } catch { - return json({ message: 'Not Found' }, { status: 404 }); + return json({ id: paramId, message: 'Not found' }, { status: 404 }); } try { await stub.finish(result); - } catch (err) { - console.error(err); + } catch (error) { + console.error(error); - // @ts-ignore - return json({ message: err?.message || err.toString() }, { status: 400 }); + return json( + { + id: paramId, + message: 'Callback failed, perhaps the deployment has already finished', + error, + }, + { status: 400 }, + ); } return json(null, { status: 204 }); diff --git a/_workers/websites-integration/functions/deployments/[id]/download-artifact.ts b/_workers/websites-integration/functions/deployments/[id]/download-artifact.ts index de5db3b41..ec2f7ef19 100644 --- a/_workers/websites-integration/functions/deployments/[id]/download-artifact.ts +++ b/_workers/websites-integration/functions/deployments/[id]/download-artifact.ts @@ -8,24 +8,24 @@ export const onRequestGet: PagesFunction = async (context) => { try { deploymentId = context.env.DEPLOYMENT.idFromString(paramId); } catch { - return json({ id: paramId, message: 'Bad request (invalid id format)' }, { status: 400 }); + return json({ id: paramId, message: 'Invalid ID format' }, { status: 400 }); } let stub: DurableObjectStub; try { stub = context.env.DEPLOYMENT.get(deploymentId); } catch { - return json({ message: 'Not found' }, { status: 404 }); + return json({ id: paramId, message: 'Not found' }, { status: 404 }); } let state: DeploymentState; try { state = await stub.getCurrentState(); - } catch (err) { - console.error(err); + } catch (error) { + console.error(error); // @ts-ignore - return json({ message: err?.message || err.toString() }, { status: 500 }); + return json({ id: paramId, message: 'Invalid state', error }, { status: 500 }); } if (state.type === 'DONE' && state.artifactName) { diff --git a/_workers/websites-integration/functions/deployments/[id]/index.ts b/_workers/websites-integration/functions/deployments/[id]/index.ts index 36d83343e..1545d79c7 100644 --- a/_workers/websites-integration/functions/deployments/[id]/index.ts +++ b/_workers/websites-integration/functions/deployments/[id]/index.ts @@ -8,7 +8,7 @@ export const onRequestGet: PagesFunction = async (context) => { try { deploymentId = context.env.DEPLOYMENT.idFromString(paramId); } catch { - return json({ id: paramId, message: 'Bad request (invalid id format)' }, { status: 400 }); + return json({ id: paramId, message: 'Invalid ID format' }, { status: 400 }); } let stub: DurableObjectStub; @@ -21,11 +21,10 @@ export const onRequestGet: PagesFunction = async (context) => { try { const state = await stub.getCurrentState(); return json({ id: paramId, state }); - } catch (err) { - console.error(err); + } catch (error) { + console.error(error); - // @ts-ignore - return json({ id: paramId, message: err?.message || err.toString() }, { status: 500 }); + return json({ id: paramId, message: 'Invalid state', error }, { status: 500 }); } }; @@ -38,7 +37,10 @@ export const onRequestPost: PagesFunction = async (context) => { try { deploymentId = context.env.DEPLOYMENT.idFromString(paramId); } catch (err) { - return json({ id: paramId, message: 'Bad request (invalid id format)' }, { status: 400 }); + return json( + { id: paramId, message: 'Invalid ID format' }, + { status: 400, statusText: 'Invalid ID format' }, + ); } let stub: DurableObjectStub; @@ -50,11 +52,13 @@ export const onRequestPost: PagesFunction = async (context) => { try { await stub.bind(params.run_id); - return json({ id: paramId, message: 'Workflow run bound', run_id: params.run_id }); - } catch (err) { - console.error(err); + return json({ id: paramId, run_id: params.run_id, message: 'Job is successfully bound' }); + } catch (error) { + console.error(error); - // @ts-ignore - return json({ id: paramId, message: err?.message || err.toString() }, { status: 500 }); + return json( + { id: paramId, run_id: params.run_id, message: 'Failed to bind job', error }, + { status: 500 }, + ); } };