import { getClientSettings } from 'features/AuthStore/helpers' import { getApiUrl } from '../config/routes' const errorLexics = { 1: 'error_invalid_email_or_password', 4: 'error_user_not_found', } type FailedResponse = { error: { code: keyof typeof errorLexics, message?: string, }, ok: false, } type SuccessResponse = { ok: true, } export const loginCheck = async ( email: string, lang: string, password: string, redirect_url: string, ) => { const { client_id, response_mode, response_type, scope, } = getClientSettings() const paramsUrl = { client_id, lang, redirect_uri: redirect_url, response_mode, response_type, scope, } const url = getApiUrl('/authorize-check') const init: RequestInit = { body: new URLSearchParams({ email, password, ...paramsUrl as {}, }), method: 'POST', } const response = await fetch(url, init) const body: SuccessResponse | FailedResponse = await response.json() if (body.ok) return Promise.resolve() return Promise.reject(errorLexics[body.error.code]) }