36 lines
995 B
TypeScript
36 lines
995 B
TypeScript
// routes/api/onboarding-guest-start.ts
|
|
import { define } from "../../utils.ts";
|
|
import type { Context } from "fresh";
|
|
import { startGuestOnboarding } from "../../services/onboardingService.ts";
|
|
import type { SessionCookie } from "../auth/callback.ts";
|
|
|
|
export const handler = define.handlers({
|
|
async POST(ctx: Context<any>) {
|
|
const stateData = ctx.state.data as SessionCookie;
|
|
const userId = stateData?.user_id;
|
|
|
|
if (!userId) {
|
|
return new Response("Unauthorized", { status: 401 });
|
|
}
|
|
|
|
const form = await ctx.req.formData();
|
|
const role = (form.get("role") || "").toString();
|
|
|
|
if (role !== "landlord" && role !== "tenant") {
|
|
return new Response("Invalid role", { status: 400 });
|
|
}
|
|
|
|
const result = await startGuestOnboarding(userId, role);
|
|
|
|
return new Response(
|
|
JSON.stringify({ nextUrl: result.nextUrl }),
|
|
{
|
|
status: 200,
|
|
headers: {
|
|
"Content-Type": "application/json",
|
|
},
|
|
},
|
|
);
|
|
},
|
|
});
|