History

Clean OpenAPI invoke error handling

Rhys Sullivan committed 6 months ago

Commit 77e62f31 parent b039b6e1 file · +10 −10Browse files

Unified · Split

packages/plugins/openapi/src/sdk/invoke.ts+10−10
@@ -117,13 +117,13 @@ export const resolveHeaders = ( · 116 unmodified lines
117 typeof value === "string"117 typeof value === "string"
118 ? Effect.succeed({ name, value })118 ? Effect.succeed({ name, value })
119 : secrets.get(value.secretId).pipe(119 : secrets.get(value.secretId).pipe(
120 Effect.mapError((err) =>120 Effect.catchTag("SecretOwnedByConnectionError", () =>
121 "_tag" in err && err._tag === "SecretOwnedByConnectionError"121 Effect.fail(
122 ? new OpenApiInvocationError({122 new OpenApiInvocationError({
123 message: `Failed to resolve secret "${value.secretId}" for header "${name}"`,123 message: `Failed to resolve secret "${value.secretId}" for header "${name}"`,
124 statusCode: Option.none(),124 statusCode: Option.none(),
125 })125 }),
126 : err,126 ),
127 ),127 ),
128 Effect.flatMap((secret) =>128 Effect.flatMap((secret) =>
129 secret === null129 secret === null
@@ -585,7 +585,7 @@ export const invoke = Effect.fn("OpenApi.invoke")(function* ( · 455 unmodified lines
585 Effect.mapError(585 Effect.mapError(
586 (err) =>586 (err) =>
587 new OpenApiInvocationError({587 new OpenApiInvocationError({
588 message: `HTTP request failed: ${err.message}`,588 message: "HTTP request failed",
589 statusCode: Option.none(),589 statusCode: Option.none(),
590 cause: err,590 cause: err,
591 }),591 }),
@@ -600,9 +600,9 @@ export const invoke = Effect.fn("OpenApi.invoke")(function* ( · 8 unmodified lines
600 600
601 const contentType = response.headers["content-type"] ?? null;601 const contentType = response.headers["content-type"] ?? null;
602 const mapBodyError = Effect.mapError(602 const mapBodyError = Effect.mapError(
603 (err: { readonly message?: string }) =>603 (err: unknown) =>
604 new OpenApiInvocationError({604 new OpenApiInvocationError({
605 message: `Failed to read response body: ${err.message ?? String(err)}`,605 message: "Failed to read response body",
606 statusCode: Option.some(status),606 statusCode: Option.some(status),
607 cause: err,607 cause: err,
608 }),608 }),