import routes from "@/routes"; import { AuthToken } from "../types"; import { User } from "./User"; import { getAuthHeaders, getBaseHeaders } from "../utils"; export interface PayloadRegisterByEmail { email: string; timezone: string; locale: string; } export interface PayloadAuthWithJWT { jwt: string; } export type Payload = PayloadRegisterByEmail | PayloadAuthWithJWT; export interface Response { auth: { token: AuthToken; payload: JwtPayload; user: User; }; } export interface JwtPayload { sub: number; email: string; loc: string; tz: number; state: string; iat: number; exp: number; jti: string; type: string; iss: string; } export const createRequest = (payload: Payload): Request => { const url = new URL(routes.server.token()); const body = JSON.stringify({ auth: { ...payload } }); return new Request(url, { method: "POST", headers: getBaseHeaders(), body }); }; export interface PayloadGetRealToken { token: string; } export interface ResponseGetRealToken { token: string; } export const createGetRealTokenRequest = ({ token }: PayloadGetRealToken): Request => { const url = new URL(routes.server.dApiGetRealToken()); return new Request(url, { method: "POST", headers: getAuthHeaders(token) }); }