w-aura/src/api/resources/AuthTokens.ts
Daniil Chemerkin 63cd2e5798 Develop
2024-05-14 22:59:10 +00:00

57 lines
1.2 KiB
TypeScript

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) });
}