diff --git a/actions/services/documentDirectService.js b/actions/services/documentDirectService.js new file mode 100644 index 00000000..6d518ea2 --- /dev/null +++ b/actions/services/documentDirectService.js @@ -0,0 +1,432 @@ +import axios from "axios"; +import { BASE_URL } from "../core/env"; +import { consoleLogger } from "../core/logger"; +import { hashAPIPath } from "../core/hash"; + +export const getAwaitingSubmissionFromBlob = (containerName) => { + return axios + .get( + BASE_URL + + "/api/file/getawaitingsubmissionfromblob?container=" + + containerName + + hashAPIPath( + "/api/file/getawaitingsubmissionfromblob?container=" + + containerName + ) + ) + .then((res) => { + return res.data; + }) + .catch((error) => { + consoleLogger(error); + }); +}; + +export const getRepsFromBlob = (containerName) => { + return axios + .get( + BASE_URL + + "/api/file/getrepsblob?container=" + + containerName + + hashAPIPath("/api/file/getrepsblob?container=" + containerName) + ) + .then((res) => { + return res.data; + }) + .catch((error) => { + consoleLogger(error); + }); +}; + +export const getRepsFromBlobProxy = async (containerName) => { + try { + const res = await axios.get( + "/api/file/getrepsblobproxy?container=" + containerName + ); + return res.data; + } catch (error) { + consoleLogger(error); + } +}; + +export const getAwaitingSubmissionFromBlobProxy = async (containerName) => { + console.log( + "///////////////////////getAwaitingSubmissionFromBlobProxy: " + + containerName, + "/api/file/getawaitingsubmissionfromblobproxy?container=" + + containerName, + "\n///////////////////////\n" + ); + + try { + const res = await axios.get( + BASE_URL + + "/api/file/getawaitingsubmissionfromblobproxy?container=" + + containerName + ); + return res.data; + } catch (error) { + consoleLogger(error); + } +}; + +export const deleteAwaitingSubmissionsFromBlob = ( + containerID, + casefolderID +) => { + var queryUrl = + "/api/file/deleteblobcase?container=" + + containerID + + "&casefolderID=" + + casefolderID; + + var config = { + method: "get", + url: queryUrl + }; + return axios(config) + .then((res) => { + return res.data; + }) + .catch((error) => { + consoleLogger(error); + }); +}; + +export const deleteMyRepresentationsFromBlob = ( + containerID, + casefolderID, + repfile +) => { + var queryUrl = + "/api/file/deleteblobrep?container=" + + containerID + + "&casefolderID=" + + casefolderID + + "&repfile=" + + repfile; + + var config = { + method: "get", + url: queryUrl + }; + return axios(config) + .then((res) => { + return res.data; + }) + .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 config = { + method: "post", + url: queryUrl, + data: formData, + headers: { "content-type": "multipart/form-data" } + }; + + try { + const res = await axios(config); + return res.data; + } 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++) { + console.log(files.length); + formData.append(files[i].name, files[i]); + } + + var queryUrl = "/api/file/uploadsinglefile"; + + const config = { + method: "post", + url: queryUrl, + data: formData, + headers: { "content-type": "multipart/form-data" } + }; + + try { + const res = await axios(config); + return res.data; + } 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 config = { + method: "post", + url: queryUrl, + data: formData, + headers: { "content-type": "multipart/form-data" } + }; + + try { + const res = await axios(config); + return res.data; + } catch (error) { + consoleLogger(error); + } +}; + +export const generateRepPDF = async ( + formValues, + containerID, + casefolderID, + options = {} +) => { + console.log("generateRepPDF function: " + formValues); + + var queryUrl = + "/api/file/generatepdf" + (options.download ? "?download=true" : ""); + + const config = { + method: "post", + url: queryUrl, + data: formValues, + ...(options.download ? { responseType: "blob" } : {}) + }; + + try { + const res = await axios(config); + return res.data; + } catch (error) { + consoleLogger(error); + } +}; + +export const generateAppealPDF = async ( + formValues, + containerID, + casefolderID, + appealType, + fileList +) => { + Object.assign(formValues, { + "filesList": fileList + }); + + var queryUrl = "/api/file/generateappealpdf?appealType=" + appealType; + + const config = { + method: "post", + url: queryUrl, + data: formValues + }; + + try { + const res = await axios(config); + return res.data; + } catch (error) { + consoleLogger(error); + } +}; + +export const getFilesFromBlob = (containerName, casefolderID) => { + return axios + .get( + BASE_URL + + "/api/file/getbloblist?container=" + + containerName + + "&casefolderID=" + + casefolderID + + hashAPIPath( + "/api/file/getbloblist?container=" + + containerName + + "&casefolderID=" + + casefolderID + ) + ) + .then((res) => { + return res.data; + }) + .catch((error) => { + consoleLogger(error); + }); +}; + +export const getFilesFromBlobproxy = (containerName, casefolderID) => { + return axios + .get( + "/api/file/getbloblistproxy?container=" + + containerName + + "&casefolderID=" + + casefolderID + ) + .then((res) => { + return res.data; + }) + .catch((error) => { + consoleLogger(error); + }); +}; + +export const getFilesFromBlobHashed = ( + containerName, + getblobshash, + casefolderID +) => { + return axios + .get( + "/api/file/getbloblist?container=" + + containerName + + "&casefolderID=" + + casefolderID + + getblobshash + ) + .then((res) => { + return res.data; + }) + .catch((error) => { + consoleLogger(error); + }); +}; + +export const deleteBlob = async ( + containerName, + blobName, + deleteblobhash, + casefolderID +) => { + try { + const res = await axios.get( + "/api/file/deleteblob?container=" + + containerName + + "&casefolderID=" + + encodeURIComponent(casefolderID) + + "&blobname=" + + encodeURIComponent(blobName) + + deleteblobhash + ); + return res.data; + } catch (error) { + consoleLogger(error); + } +}; + +export const deleteRepBlob = async ( + containerName, + blobName, + deleteblobhash, + casefolderID, + filenamePrefix +) => { + try { + const res = await axios.get( + "/api/file/deleteblob?container=" + + containerName + + "&casefolderID=" + + encodeURIComponent(casefolderID + "/" + filenamePrefix) + + "&blobname=" + + encodeURIComponent(blobName) + + deleteblobhash + ); + return res.data; + } catch (error) { + consoleLogger(error); + } +}; + +export const downloadBlob = (containerName, blobName) => { + return axios + .get( + BASE_URL + + "/api/file/downloadblob?container=" + + containerName.toLowerCase() + + "&blobname=" + + blobName, + { responseType: "blob" } + ) + .then((response) => { + res.setHeader( + "content-disposition", + "attachment; filename=" + blobName + ); + + return res.status(200).send(response.data); + }) + .catch((error) => { + consoleLogger(error); + }); +}; + +export const getProgressFromBlob = async (containerName, casereference) => { + try { + const res = await axios.get( + BASE_URL + + "/api/file/getprogressobjblob?container=" + + encodeURIComponent(containerName) + + "&casefolderID=" + + encodeURIComponent(casereference) + + hashAPIPath( + "/api/file/getprogressobjblob?container=" + + encodeURIComponent(containerName) + + "&casefolderID=" + + encodeURIComponent(casereference) + ) + ); + return res.data; + } catch (error) { + consoleLogger(error); + } +}; + +export const createContainerProxy = (containerName) => { + var queryUrl = + "/api/file/setupcontainer?ident=" + + containerName + + hashAPIPath("/api/file/setupcontainer?ident=" + containerName); + + return axios + .get(BASE_URL + queryUrl) + .then((res) => res.data) + .catch((error) => { + consoleLogger(error); + + return JSON.stringify(error); + }); +}; diff --git a/actions/services/documentService.js b/actions/services/documentService.js index 4b856086..8b0deca6 100644 --- a/actions/services/documentService.js +++ b/actions/services/documentService.js @@ -18,7 +18,7 @@ import { downloadBlob, getProgressFromBlob, createContainerProxy -} from "./legacyActionsService"; +} from "./documentDirectService"; export { getAwaitingSubmissionFromBlob,