import { BASE_URL } from "../core/env"; import { consoleLogger } from "../core/logger"; import { hashAPIPath } from "../core/hash"; import { buildHashedQueryUrl } from "../clients/relayClient"; import { getJson, requestJson } from "../clients/endpointClient"; import { getFileJson, getSignedFileJson, downloadFileBlob } from "../clients/fileClient"; export const getAwaitingSubmissionFromBlob = (containerName) => { return getJson( BASE_URL + "/api/file/getawaitingsubmissionfromblob?container=" + containerName + hashAPIPath( "/api/file/getawaitingsubmissionfromblob?container=" + containerName ) ).catch((error) => { consoleLogger(error); }); }; export const getRepsFromBlob = (containerName) => { return getJson( BASE_URL + "/api/file/getrepsblob?container=" + containerName + hashAPIPath("/api/file/getrepsblob?container=" + containerName) ).catch((error) => { consoleLogger(error); }); }; export const getRepsFromBlobProxy = async (containerName) => { return getJson( "/api/file/getrepsblobproxy?container=" + containerName ).catch((error) => { consoleLogger(error); }); }; export const getAwaitingSubmissionFromBlobProxy = async (containerName) => { return getJson( BASE_URL + "/api/file/getawaitingsubmissionfromblobproxy?container=" + containerName ).catch((error) => { consoleLogger(error); }); }; export const getFilesFromBlobproxy = (containerName, casefolderID) => { return getFileJson( "/api/file/getbloblistproxy?container=" + containerName + "&casefolderID=" + casefolderID ).catch((error) => { consoleLogger(error); }); }; export const deleteAwaitingSubmissionsFromBlob = ( containerID, casefolderID ) => { var queryUrl = "/api/file/deleteblobcase?container=" + containerID + "&casefolderID=" + casefolderID; return getSignedFileJson(queryUrl).catch((error) => { consoleLogger(error); }); }; export const deleteMyRepresentationsFromBlob = ( containerID, casefolderID, repfile ) => { var queryUrl = "/api/file/deleteblobrep?container=" + containerID + "&casefolderID=" + casefolderID + "&repfile=" + repfile; return getSignedFileJson(queryUrl).catch((error) => { consoleLogger(error); }); }; export const uploadFiles = async ( formValues, filesObj, containerID, casefolderID ) => { let files = filesObj; var formData = new FormData(); formData.append("appealData", JSON.stringify(formValues)); formData.append("containerID", containerID); formData.append("casefolderID", casefolderID); for (let i = 0; i < files.length; i++) { for (let j = 0; j < files[i].length; j++) { formData.append(files[i][j].name, files[i][j]); } } var queryUrl = "/api/file/upload"; const hashedUrl = await buildHashedQueryUrl(queryUrl); const config = { method: "post", url: hashedUrl, data: formData, headers: { "content-type": "multipart/form-data" } }; try { return await requestJson(config); } catch (error) { consoleLogger(error); } }; export const uploadSingleFile = async (filesObj, containerID, casefolderID) => { let files = filesObj; var formData = new FormData(); formData.append("containerID", containerID); formData.append("casefolderID", casefolderID); for (let i = 0; i < files.length; i++) { formData.append(files[i].name, files[i]); } var queryUrl = "/api/file/uploadsinglefile"; const hashedUrl = await buildHashedQueryUrl(queryUrl); const config = { method: "post", url: hashedUrl, data: formData, headers: { "content-type": "multipart/form-data" } }; try { return await requestJson(config); } catch (error) { consoleLogger(error); } }; export const uploadRepFiles = async ( formValues, filesObj, containerID, casefolderID ) => { var formData = new FormData(); formData.append("appealData", JSON.stringify(formValues)); formData.append("containerID", containerID); formData.append("casefolderID", casefolderID); formData.append("repOrAppeal", true); var queryUrl = "/api/file/upload"; const hashedUrl = await buildHashedQueryUrl(queryUrl); const config = { method: "post", url: hashedUrl, data: formData, headers: { "content-type": "multipart/form-data" } }; try { return await requestJson(config); } catch (error) { consoleLogger(error); } }; export const generateRepPDF = async ( formValues, containerID, casefolderID, options = {} ) => { var queryUrl = "/api/file/generatepdf" + (options.download ? "?download=true" : ""); const hashedUrl = await buildHashedQueryUrl(queryUrl); const config = { method: "post", url: hashedUrl, data: formValues, ...(options.download ? { responseType: "blob" } : {}) }; try { return await requestJson(config); } catch (error) { consoleLogger(error); } }; export const generateAppealPDF = async ( formValues, containerID, casefolderID, appealType, fileList, options = {} ) => { Object.assign(formValues, { "filesList": fileList }); var queryUrl = "/api/file/generateappealpdf?appealType=" + appealType + (options.download ? "&download=true" : ""); const hashedUrl = await buildHashedQueryUrl(queryUrl); const config = { method: "post", url: hashedUrl, data: formValues, ...(options.download ? { responseType: "blob" } : {}) }; try { return await requestJson(config); } catch (error) { consoleLogger(error); } }; export const getFilesFromBlob = (containerName, casefolderID) => { return getJson( BASE_URL + "/api/file/getbloblist?container=" + containerName + "&casefolderID=" + casefolderID + hashAPIPath( "/api/file/getbloblist?container=" + containerName + "&casefolderID=" + casefolderID ) ).catch((error) => { consoleLogger(error); }); }; export const getFilesFromBlobHashed = ( containerName, getblobshash, casefolderID ) => { return getJson( "/api/file/getbloblist?container=" + containerName + "&casefolderID=" + casefolderID + getblobshash ).catch((error) => { consoleLogger(error); }); }; export const deleteBlob = async ( containerName, blobName, deleteblobhash, casefolderID ) => { return getFileJson( "/api/file/deleteblob?container=" + containerName + "&casefolderID=" + encodeURIComponent(casefolderID) + "&blobname=" + encodeURIComponent(blobName) + deleteblobhash ).catch((error) => { consoleLogger(error); }); }; export const deleteRepBlob = async ( containerName, blobName, deleteblobhash, casefolderID, filenamePrefix ) => { return getFileJson( "/api/file/deleteblob?container=" + containerName + "&casefolderID=" + encodeURIComponent(casefolderID + "/" + filenamePrefix) + "&blobname=" + encodeURIComponent(blobName) + deleteblobhash ).catch((error) => { consoleLogger(error); }); }; export const downloadBlob = (containerName, blobName) => { const queryUrl = BASE_URL + "/api/file/downloadblob?container=" + containerName.toLowerCase() + "&blobname=" + blobName; return downloadFileBlob(queryUrl).catch((error) => { consoleLogger(error); }); }; export const getProgressFromBlob = async (containerName, casereference) => { return getJson( BASE_URL + "/api/file/getprogressobjblob?container=" + encodeURIComponent(containerName) + "&casefolderID=" + encodeURIComponent(casereference) + hashAPIPath( "/api/file/getprogressobjblob?container=" + encodeURIComponent(containerName) + "&casefolderID=" + encodeURIComponent(casereference) ) ).catch((error) => { consoleLogger(error); }); }; export const createContainerProxy = (containerName) => { var queryUrl = "/api/file/setupcontainer?ident=" + containerName + hashAPIPath("/api/file/setupcontainer?ident=" + containerName); return getJson(BASE_URL + queryUrl).catch((error) => { consoleLogger(error); return JSON.stringify(error); }); };