import { BASE_URL } from "../core/env"; import { consoleLogger } from "../core/logger"; import { hashAPIPath } from "../core/hash"; import { buildFileQuery, withBaseUrl, appendQuerySuffix, appendHashSuffix } from "../clients/fileRouteBuilder"; import { getFileJson, getSignedFileJson, downloadFileBlob, postSignedFileJson } from "../clients/fileClient"; export const getAwaitingSubmissionFromBlob = (containerName) => { const route = buildFileQuery("/api/file/getawaitingsubmissionfromblob", { container: containerName }); return getFileJson( withBaseUrl(BASE_URL, appendHashSuffix(route, hashAPIPath)) ).catch((error) => { consoleLogger(error); }); }; export const getRepsFromBlob = (containerName) => { const route = buildFileQuery("/api/file/getrepsblob", { container: containerName }); return getFileJson( withBaseUrl(BASE_URL, appendHashSuffix(route, hashAPIPath)) ).catch((error) => { consoleLogger(error); }); }; export const getRepsFromBlobProxy = async (containerName) => { const route = buildFileQuery("/api/file/getrepsblobproxy", { container: containerName }); return getFileJson(route).catch((error) => { consoleLogger(error); }); }; export const getAwaitingSubmissionFromBlobProxy = async (containerName) => { const route = buildFileQuery( "/api/file/getawaitingsubmissionfromblobproxy", { container: containerName } ); return getFileJson(withBaseUrl(BASE_URL, route)).catch((error) => { consoleLogger(error); }); }; export const getFilesFromBlobproxy = (containerName, casefolderID) => { const route = buildFileQuery("/api/file/getbloblistproxy", { container: containerName, casefolderID }); return getFileJson(route).catch((error) => { consoleLogger(error); }); }; export const deleteAwaitingSubmissionsFromBlob = ( containerID, casefolderID ) => { var queryUrl = buildFileQuery("/api/file/deleteblobcase", { container: containerID, casefolderID }); return getSignedFileJson(queryUrl).catch((error) => { consoleLogger(error); }); }; export const deleteMyRepresentationsFromBlob = ( containerID, casefolderID, repfile ) => { var queryUrl = buildFileQuery("/api/file/deleteblobrep", { container: containerID, casefolderID, 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"; try { return await postSignedFileJson(queryUrl, formData); } 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"; try { return await postSignedFileJson(queryUrl, formData); } 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"; try { return await postSignedFileJson(queryUrl, formData); } catch (error) { consoleLogger(error); } }; export const generateRepPDF = async ( formValues, containerID, casefolderID, options = {} ) => { var queryUrl = "/api/file/generatepdf" + (options.download ? "?download=true" : ""); try { return await postSignedFileJson(queryUrl, formValues, { ...(options.download ? { responseType: "blob" } : {}) }); } 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" : ""); try { return await postSignedFileJson(queryUrl, formValues, { ...(options.download ? { responseType: "blob" } : {}) }); } catch (error) { consoleLogger(error); } }; export const getFilesFromBlob = (containerName, casefolderID) => { const route = buildFileQuery("/api/file/getbloblist", { container: containerName, casefolderID }); return getFileJson( withBaseUrl(BASE_URL, appendHashSuffix(route, hashAPIPath)) ).catch((error) => { consoleLogger(error); }); }; export const getFilesFromBlobHashed = ( containerName, getblobshash, casefolderID ) => { const route = buildFileQuery("/api/file/getbloblist", { container: containerName, casefolderID }); return getFileJson(appendQuerySuffix(route, getblobshash)).catch( (error) => { consoleLogger(error); } ); }; export const deleteBlob = async ( containerName, blobName, deleteblobhash, casefolderID ) => { const route = buildFileQuery( "/api/file/deleteblob", { container: containerName, casefolderID, blobname: blobName }, { encode: true } ); return getFileJson(appendQuerySuffix(route, deleteblobhash)).catch( (error) => { consoleLogger(error); } ); }; export const deleteRepBlob = async ( containerName, blobName, deleteblobhash, casefolderID, filenamePrefix ) => { const route = buildFileQuery( "/api/file/deleteblob", { container: containerName, casefolderID: casefolderID + "/" + filenamePrefix, blobname: blobName }, { encode: true } ); return getFileJson(appendQuerySuffix(route, deleteblobhash)).catch( (error) => { consoleLogger(error); } ); }; export const downloadBlob = (containerName, blobName) => { const queryUrl = withBaseUrl( BASE_URL, buildFileQuery("/api/file/downloadblob", { container: containerName.toLowerCase(), blobname: blobName }) ); return downloadFileBlob(queryUrl).catch((error) => { consoleLogger(error); }); }; export const getProgressFromBlob = async (containerName, casereference) => { const route = buildFileQuery( "/api/file/getprogressobjblob", { container: containerName, casefolderID: casereference }, { encode: true } ); return getFileJson( withBaseUrl(BASE_URL, appendHashSuffix(route, hashAPIPath)) ).catch((error) => { consoleLogger(error); }); }; export const createContainerProxy = (containerName) => { var route = buildFileQuery("/api/file/setupcontainer", { ident: containerName }); var queryUrl = appendHashSuffix(route, hashAPIPath); return getFileJson(withBaseUrl(BASE_URL, queryUrl)).catch((error) => { consoleLogger(error); return JSON.stringify(error); }); };