import makeRequest from "@api/makeRequest"; import { jsonToFormdata } from "@root/utils/jsonToFormdata"; import { parseAxiosError } from "@root/utils/parse-error"; import type { Verification, SendDocumentsArgs, UpdateDocumentsArgs, } from "@root/model/auth"; const API_URL = `${process.env.REACT_APP_DOMAIN}/verification/v1.0.0/verification`; export async function verification( userId: string ): Promise<[Verification | null, string?]> { try { const verificationResponse = await makeRequest({ url: `${API_URL}/${userId}`, method: "GET", useToken: true, withCredentials: true, }); verificationResponse.files = verificationResponse.files.map((obj) => { obj.url = obj.url .replace( "https://hub.pena.digital", process.env.REACT_APP_DOMAIN?.toString() || "" ) .replace( "https://shub.pena.digital", process.env.REACT_APP_DOMAIN?.toString() || "" ); return obj; }); return [verificationResponse]; } catch (nativeError) { const [error, status] = parseAxiosError(nativeError); if (status === 404) { return [null, "нет данных"]; } return [null, `Ошибка запроса верификации. ${error}`]; } } export async function sendDocuments( documents: SendDocumentsArgs ): Promise<[Verification | "OK" | null, string?]> { try { const sendDocumentsResponse = await makeRequest({ url: API_URL, 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: `${API_URL}/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}`]; } } export const updateDocument = async ( body: FormData ): Promise<[Verification | "OK" | null, string?]> => { try { const updateDocumentResponse = await makeRequest({ url: API_URL, method: "PATCH", body, useToken: true, withCredentials: true, }); return [updateDocumentResponse]; } catch (nativeError) { const [error] = parseAxiosError(nativeError); return [null, `Ошибка обновления документа. ${error}`]; } };