41 lines
873 B
TypeScript
41 lines
873 B
TypeScript
import { AccountSchema } from "@platform/models/account.ts";
|
|
import { route, UnauthorizedError } from "@platform/relay";
|
|
import z from "zod";
|
|
|
|
export * from "./errors.ts";
|
|
export * from "./strategies.ts";
|
|
|
|
export const email = route.post("/api/v1/auth/email").body(
|
|
z.object({
|
|
base: z.url(),
|
|
email: z.email(),
|
|
}),
|
|
);
|
|
|
|
export const password = route.post("/api/v1/auth/password").body(
|
|
z.object({
|
|
alias: z.string(),
|
|
password: z.string(),
|
|
}),
|
|
);
|
|
|
|
export const code = route
|
|
.get("/api/v1/auth/code/:accountId/code/:codeId/:value")
|
|
.params({
|
|
accountId: z.string(),
|
|
codeId: z.string(),
|
|
value: z.string(),
|
|
})
|
|
.query({
|
|
next: z.string().optional(),
|
|
});
|
|
|
|
export const session = route.get("/api/v1/auth/session").response(AccountSchema).errors([UnauthorizedError]);
|
|
|
|
export const routes = {
|
|
email,
|
|
password,
|
|
code,
|
|
session,
|
|
};
|