import { makeRequest } from "@frontend/kitui"; import { jsonToFormdata } from "@root/utils/jsonToFormdata"; import { parseAxiosError } from "@root/utils/parse-error"; import type { Verification, SendDocumentsArgs, UpdateDocumentsArgs, } from "@root/model/auth"; const apiUrl = process.env.NODE_ENV === "production" ? "/verification" : "https://hub.pena.digital/verification"; export async function verification( userId: string ): Promise<[Verification | null, string?]> { try { const verificationResponse = await makeRequest({ url: apiUrl + "/verification/" + userId, method: "GET", useToken: true, withCredentials: true, }); return [verificationResponse]; } catch (nativeError) { const [error] = parseAxiosError(nativeError); return [null, `Ошибка запроса верификации. ${error}`]; } } export async function sendDocuments( documents: SendDocumentsArgs ): Promise<[Verification | "OK" | null, string?]> { try { const sendDocumentsResponse = await makeRequest({ url: apiUrl + "/verification", method: "POST", useToken: true, withCredentials: true, body: jsonToFormdata({ ...documents, egrule: documents.inn }), }); return [sendDocumentsResponse]; } catch (nativeError) { const [error] = parseAxiosError(nativeError); return [null, `Ошибка отправки документов. ${error}`]; } } export async function updateDocuments( documents: UpdateDocumentsArgs ): Promise<[Verification | "OK" | null, string? ]> { try { const updateDocumentsResponse = await makeRequest({ url: apiUrl + "/verification/file", method: "PATCH", useToken: true, withCredentials: true, body: jsonToFormdata( documents.inn ? { ...documents, egrule: documents.inn } : documents ), }); return [updateDocumentsResponse]; } catch (nativeError) { const [error] = parseAxiosError(nativeError); return [null, `Ошибка обновления документов. ${error}`]; } }