123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687 |
- import { z } from "zod";
- class authApi {
- // /auth/registration
- public ZRegistration = {
- req: z.object({
- email: z.string().email(),
- }),
- res: z.object({
- code: z.enum(["pinIsSent", "pinIsNotSent", "alreadyExists"]),
- transactionId: z.string().uuid().optional(),
- }),
- };
- // /auth/confirm-registration
- public ZConfirmRegistration = {
- req: z.object({
- password: z.string(),
- name: z.string(),
- transactionId: z.string().uuid(),
- confirmPin: z.number().min(1000).max(9999),
- }),
- res: z.discriminatedUnion("code", [
- z.object({
- code: z.literal("registered"),
- userData: z.object({
- accessToken: z.string(),
- refreshToken: z.string(),
- email: z.string().email(),
- userId: z.string().uuid(),
- }),
- }),
- z.object({ code: z.literal("pinIsWrong"), triesRemained: z.number() }),
- z.object({ code: z.literal("pinIsRotten") }),
- z.object({ code: z.literal("tooManyTries") }),
- ]),
- };
- // /auth/login
- public ZLogin = {
- req: z.object({
- email: z.string().email(),
- password: z.string(),
- }),
- res: z.object({
- code: z.enum(["userNotFound", "passIsWrong", "tooManyTries", "success"]),
- triesRemained: z.number().optional(),
- userData: z
- .object({
- accessToken: z.string(),
- refreshToken: z.string(),
- email: z.string().email(),
- userId: z.string().uuid(),
- })
- .optional(),
- }),
- };
- // /auth/logout
- public ZLogout = {
- res: z.object({
- code: z.enum(["success"]),
- }),
- };
- // /auth/logout-all-devices
- public ZLogoutAllDevices = {
- res: z.object({
- code: z.enum(["success"]),
- }),
- };
- // /auth/refresh
- public ZRefresh = {
- res: z.object({
- code: z.enum(["success"]),
- userData: z.object({
- accessToken: z.string(),
- refreshToken: z.string(),
- email: z.string().email(),
- userId: z.string().uuid(),
- }),
- }),
- };
- }
- export const AuthApi = new authApi();
|