core/apps/webapp/app/routes/api.v1.oauth._index.tsx
2025-07-08 09:39:30 +05:30

33 lines
946 B
TypeScript

import { json } from "@remix-run/node";
import { createActionApiRoute } from "~/services/routeBuilders/apiBuilder.server";
import { OAuthBodySchema } from "~/services/oauth/oauth-utils.server";
import { getRedirectURL } from "~/services/oauth/oauth.server";
import { getWorkspaceByUser } from "~/models/workspace.server";
// This route handles the OAuth redirect URL generation, similar to the NestJS controller
const { action, loader } = createActionApiRoute(
{
body: OAuthBodySchema,
allowJWT: true,
authorization: {
action: "oauth",
},
corsStrategy: "all",
},
async ({ body, authentication, request }) => {
const workspace = await getWorkspaceByUser(authentication.userId);
// Call the service to get the redirect URL
const redirectURL = await getRedirectURL(
body,
authentication.userId,
workspace?.id,
);
return json(redirectURL);
},
);
export { action, loader };