History

Clean cloud auth and Autumn boundaries

Rhys Sullivan committed 6 months ago

Commit d401d651 parent b039b6e4 files · +36 −22Browse files

Showing the changes to apps/cloud/src/api (1 of 4 files). Show all

Unified · Split

apps/cloud/src/api/autumn.ts+12−16
@@ -1,5 +1,5 @@
1import { env } from "cloudflare:workers";1import { env } from "cloudflare:workers";
2import { Effect } from "effect";2import { Cause, Effect } from "effect";
3import {3import {
4 HttpRouter,4 HttpRouter,
5 HttpServerRequest,5 HttpServerRequest,
@@ -30,13 +30,11 @@ const handler = Effect.gen(function* () { · 24 unmodified lines
30 const session = yield* workos.authenticateRequest(webRequest);30 const session = yield* workos.authenticateRequest(webRequest);
31 31
32 if (!session || !session.organizationId) {32 if (!session || !session.organizationId) {
33 return yield* Effect.fail(33 return yield* new HttpResponseError({
34 new HttpResponseError({34 status: 401,
35 status: 401,35 code: "unauthorized",
36 code: "unauthorized",36 message: "Unauthorized",
37 message: "Unauthorized",37 });
38 }),
39 );
40 }38 }
41 39
42 const url = new URL(webRequest.url);40 const url = new URL(webRequest.url);
@@ -74,20 +72,18 @@ const handler = Effect.gen(function* () { · 31 unmodified lines
74 72
75 if (statusCode >= 400) {73 if (statusCode >= 400) {
76 console.error("[autumn] upstream error:", statusCode, response);74 console.error("[autumn] upstream error:", statusCode, response);
77 return yield* Effect.fail(75 return yield* new HttpResponseError({
78 new HttpResponseError({76 status: statusCode,
79 status: statusCode,77 code: "billing_request_failed",
80 code: "billing_request_failed",78 message: "Billing request failed",
81 message: "Billing request failed",79 });
82 }),
83 );
84 }80 }
85 81
86 return HttpServerResponse.jsonUnsafe(response, { status: statusCode });82 return HttpServerResponse.jsonUnsafe(response, { status: statusCode });
87}).pipe(83}).pipe(
88 Effect.catchCause((err) => {84 Effect.catchCause((err) => {
89 if (isServerError(err)) {85 if (isServerError(err)) {
90 console.error("[autumn] request failed:", err instanceof Error ? err.stack : err);86 console.error("[autumn] request failed:", Cause.pretty(err));
91 }87 }
92 return Effect.succeed(toErrorServerResponse(err));88 return Effect.succeed(toErrorServerResponse(err));
93 }),89 }),