57 lines
1.2 KiB
TypeScript
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) });
|
|
}
|