Skip to content

Commit

Permalink
websites-integration: polish error messages
Browse files Browse the repository at this point in the history
  • Loading branch information
cometkim committed Jun 7, 2024
1 parent 5952992 commit 0d81e8c
Show file tree
Hide file tree
Showing 3 changed files with 32 additions and 22 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -10,23 +10,29 @@ export const onRequestPost: PagesFunction<Env, 'id'> = 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<Deployment>;
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 });
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,24 +8,24 @@ export const onRequestGet: PagesFunction<Env, 'id'> = 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<Deployment>;
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) {
Expand Down
26 changes: 15 additions & 11 deletions _workers/websites-integration/functions/deployments/[id]/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ export const onRequestGet: PagesFunction<Env, 'id'> = 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<Deployment>;
Expand All @@ -21,11 +21,10 @@ export const onRequestGet: PagesFunction<Env, 'id'> = 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 });
}
};

Expand All @@ -38,7 +37,10 @@ export const onRequestPost: PagesFunction<Env, 'id'> = 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<Deployment>;
Expand All @@ -50,11 +52,13 @@ export const onRequestPost: PagesFunction<Env, 'id'> = 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 },
);
}
};

0 comments on commit 0d81e8c

Please sign in to comment.