@qite/tide-client
Version:
Frontend client for Tide
77 lines (65 loc) • 2.18 kB
text/typescript
import { TideClientConfig } from "..";
import {
MemberConfirmationRequest,
MemberForgotPasswordRequest,
MemberLoginRequest,
MemberLoginResponse,
MemberResetPasswordRequest,
} from "../types";
import { post } from "./common-client";
import { post as apiPost } from "./api";
const ENDPOINT = "/api/member";
const ENDPOINT_LOGIN = `${ENDPOINT}/login`;
const ENDPOINT_LOGOUT = `${ENDPOINT}/logout`;
const ENDPOINT_CONFIRM = `${ENDPOINT}/confirm`;
const ENDPOINT_FORGOT_PASSWORD = `${ENDPOINT}/forgot-password`;
const ENDPOINT_RESET_PASSWORD = `${ENDPOINT}/reset-password`;
export const login = (
config: TideClientConfig,
request: MemberLoginRequest,
signal?: AbortSignal
): Promise<MemberLoginResponse> => {
const url = `${config.host}${ENDPOINT_LOGIN}`;
const apiKey = config.apiKey;
const body = JSON.stringify(request);
return post(url, apiKey, body, config.token, signal);
};
export const logout = (
config: TideClientConfig,
signal?: AbortSignal
): Promise<Response> => {
const url = `${config.host}${ENDPOINT_LOGOUT}`;
const apiKey = config.apiKey;
const body = "";
return apiPost(url, apiKey, body, config.token, signal);
};
export const confirm = (
config: TideClientConfig,
request: MemberConfirmationRequest,
signal?: AbortSignal
): Promise<Response> => {
const url = `${config.host}${ENDPOINT_CONFIRM}`;
const apiKey = config.apiKey;
const body = JSON.stringify(request);
return apiPost(url, apiKey, body, config.token, signal);
};
export const forgotPassword = (
config: TideClientConfig,
request: MemberForgotPasswordRequest,
signal?: AbortSignal
): Promise<Response> => {
const url = `${config.host}${ENDPOINT_FORGOT_PASSWORD}`;
const apiKey = config.apiKey;
const body = JSON.stringify(request);
return apiPost(url, apiKey, body, config.token, signal);
};
export const resetPassword = (
config: TideClientConfig,
request: MemberResetPasswordRequest,
signal?: AbortSignal
): Promise<Response> => {
const url = `${config.host}${ENDPOINT_RESET_PASSWORD}`;
const apiKey = config.apiKey;
const body = JSON.stringify(request);
return apiPost(url, apiKey, body, config.token, signal);
};