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 const verification = async ( userId: string ): Promise<[Verification | null, string?]> => { try { const verificationResponse = await makeRequest({ method: "GET", url: API_URL, // url: `${API_URL}/${userId}`, 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 const sendDocuments = async ( documents: SendDocumentsArgs ): Promise<[Verification | "OK" | null, string?]> => { try { const sendDocumentsResponse = await makeRequest({ method: "POST", url: API_URL, body: jsonToFormdata({ ...documents, egrule: documents.inn }), useToken: true, withCredentials: true, }); return [sendDocumentsResponse]; } catch (nativeError) { const [error] = parseAxiosError(nativeError); return [null, `Ошибка отправки документов. ${error}`]; } }; export const updateDocuments = async ( documents: UpdateDocumentsArgs ): Promise<[Verification | "OK" | null, string?]> => { try { const updateDocumentsResponse = await makeRequest({ method: "PUT", url: `${API_URL}`, body: jsonToFormdata( documents.inn ? { ...documents, egrule: documents.inn } : documents ), useToken: true, withCredentials: true, }); 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({ method: "PATCH", url: API_URL, body, useToken: true, withCredentials: true, }); return [updateDocumentResponse]; } catch (nativeError) { const [error] = parseAxiosError(nativeError); return [null, `Ошибка обновления документа. ${error}`]; } };