112 lines
3.0 KiB
TypeScript
112 lines
3.0 KiB
TypeScript
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<never, Verification>({
|
|
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<FormData, Verification>({
|
|
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<FormData, Verification>({
|
|
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<FormData, Verification>({
|
|
method: "PATCH",
|
|
url: API_URL,
|
|
body,
|
|
useToken: true,
|
|
withCredentials: true,
|
|
});
|
|
|
|
return [updateDocumentResponse];
|
|
} catch (nativeError) {
|
|
const [error] = parseAxiosError(nativeError);
|
|
|
|
return [null, `Ошибка обновления документа. ${error}`];
|
|
}
|
|
};
|