From be9f86b6b29bf6bfe39022b1de4e9f4eaac04c54 Mon Sep 17 00:00:00 2001 From: rdbsolutions Date: Tue, 12 Jul 2022 12:49:26 +0100 Subject: [PATCH] added hashing on api calls --- actions/azurestorage.js | 9 ++ actions/index.js | 32 ++++++- components/elements/index.js | 25 +++-- components/newappeal/buildcheckrow.js | 25 +++++ components/newappeal/buildchecksection.js | 109 +++++++++++++++++++--- components/newappeal/buildsection.js | 96 ++----------------- pages/api/file/deleteblob.js | 22 ++++- pages/api/file/downloadblob.js | 12 --- pages/api/file/getbloblist.js | 18 +++- pages/api/file/upload.js | 10 ++ pages/index.js | 26 ++---- pages/myportal/index.js | 7 -- store/appealType/action.js | 1 - 13 files changed, 234 insertions(+), 158 deletions(-) diff --git a/actions/azurestorage.js b/actions/azurestorage.js index a6efb105..bdcd8d78 100644 --- a/actions/azurestorage.js +++ b/actions/azurestorage.js @@ -85,6 +85,15 @@ export const getBlobs = async (containerName) => { "&blobname=" + blob.name.split("/")[1] ), + "hasheddeletepath": hashAPIPath( + "/api/file/deleteblob?container=" + + containerName.toLowerCase() + + "&blobname=" + + blob.name.split("/")[1] + ), + "hashgetblobs": hashAPIPath( + "/api/file/getbloblist?container=" + containerName.toLowerCase() + ), }); } diff --git a/actions/index.js b/actions/index.js index 4f40fb86..fccd1ea1 100644 --- a/actions/index.js +++ b/actions/index.js @@ -1024,7 +1024,7 @@ export const createAccount = (formValues) => { }); }; -export const uploadFiles = async (formValues, filesObj) => { +export const uploadFiles = async (formValues, filesObj, uploadhash) => { let files = filesObj; console.log(formValues); @@ -1065,10 +1065,14 @@ export const getFilesFromBlob = (containerName) => { .get( BASE_URL + "/api/file/getbloblist?container=" + - containerName.toLowerCase() + containerName.toLowerCase() + + hashAPIPath( + "/api/file/getbloblist?container=" + + containerName.toLowerCase() + ) ) .then((res) => { - console.log("//////////----", res.data); + //console.log("//////////----", res.data); return res.data; }) .catch((error) => { @@ -1076,14 +1080,32 @@ export const getFilesFromBlob = (containerName) => { }); }; -export const deleteBlob = async (containerName, blobName) => { +export const getFilesFromBlobHashed = (containerName, getblobshash) => { + return axios + .get( + BASE_URL + + "/api/file/getbloblist?container=" + + containerName.toLowerCase() + + getblobshash + ) + .then((res) => { + //console.log("//////////----", res.data); + return res.data; + }) + .catch((error) => { + console.log("this serror", error); + }); +}; + +export const deleteBlob = async (containerName, blobName, deleteblobhash) => { try { const res = await axios.get( BASE_URL + "/api/file/deleteblob?container=" + containerName.toLowerCase() + "&blobname=" + - blobName + blobName + + deleteblobhash ); return res.data; } catch (error) { diff --git a/components/elements/index.js b/components/elements/index.js index 238c2e20..78f62222 100644 --- a/components/elements/index.js +++ b/components/elements/index.js @@ -15,10 +15,9 @@ import Dropzone, { useDropzone } from "react-dropzone"; import _ from "lodash"; import { connect, useDispatch } from "react-redux"; import { - getFilesFromBlob, + getFilesFromBlobHashed, deleteBlob, downloadBlob, - hashAPIPath, } from "../../actions"; import { setFilesForAppeal } from "../../store/appealType/action"; import Link from "next/link"; @@ -1456,13 +1455,18 @@ const RenderFileUpload = (field) => { "$..[?(@.documentType=='" + field.documentTypeCode + "')]" ); - const deleteThisBlob = async (containerName, blobName) => { - console.log(containerName, blobName); - deleteBlob(containerName, blobName) + const deleteThisBlob = async ( + containerName, + blobName, + deleteblobhash, + getblobshash + ) => { + //console.log(containerName, blobName, deleteblobhash); + deleteBlob(containerName, blobName, deleteblobhash) .then((data) => data) .then(() => { - getFilesFromBlob(containerName).then((newfilelist) => - field.setFilesForAppeal(newfilelist) + getFilesFromBlobHashed(containerName, getblobshash).then( + (newfilelist) => field.setFilesForAppeal(newfilelist) ); }); }; @@ -1538,7 +1542,12 @@ const RenderFileUpload = (field) => { { - deleteThisBlob(field.ticketnumber, blob.name); + deleteThisBlob( + field.ticketnumber, + blob.name, + blob.hasheddeletepath, + blob.hashgetblobs + ); }} title="Remove this file" > diff --git a/components/newappeal/buildcheckrow.js b/components/newappeal/buildcheckrow.js index 09d0a6b5..41723f6d 100644 --- a/components/newappeal/buildcheckrow.js +++ b/components/newappeal/buildcheckrow.js @@ -95,6 +95,28 @@ let BuildCheckRow = (props) => { "')]" ); + // if (datafieldname[0].value.indexOf("fileUpload") > 0) { + // isRequiredField.push({ + // "LogicalName": datafieldname[0].value, + // "RequiredLevel": { + // "Value": "Recommended", + // "CanBeChanged": true, + // "ManagedPropertyLogicalName": + // "canmodifyrequirementlevelsettings", + // }, + // "MetadataId": + // "32a7e6fc-4283-eb11-aac0-00224800be9c", + // }); + // } + + // console.log( + // datafieldname[0].value.indexOf("fileUpload") > 0, + // isRequiredField, + // props.props.form["appealForm"].values[ + // datafieldname[0].value + // ] + // ); + if ( typeof props.props.form["appealForm"].values[ datafieldname[0].value @@ -147,6 +169,9 @@ let BuildCheckRow = (props) => { datafieldname[0].value ] ) + : fieldtype[0].value == + "{16D63FD6-119B-4353-BDCA-18358721C3FE}" + ? "ssss" : props.props.form["appealForm"] .values[ datafieldname[0].value diff --git a/components/newappeal/buildchecksection.js b/components/newappeal/buildchecksection.js index 1f373ef9..2d873e26 100644 --- a/components/newappeal/buildchecksection.js +++ b/components/newappeal/buildchecksection.js @@ -28,6 +28,7 @@ let BuildCheckSection = (props) => { handleSubmit, formTitle, setCurrentSection, + updateCurrentSection, mandatoryFieldsData, } = props; @@ -63,6 +64,54 @@ let BuildCheckSection = (props) => { alert(1); }; + function bytesToSize(bytes) { + var sizes = ["Bytes", "KB", "MB", "GB", "TB"]; + if (bytes == 0) return "0 Byte"; + var i = parseInt(Math.floor(Math.log(bytes) / Math.log(1024))); + return Math.round(bytes / Math.pow(1024, i), 2) + " " + sizes[i]; + } + + const getThumbnailIconByExtension = (blobName) => { + let fileType = blobName.slice(blobName.lastIndexOf(".") + 1); + + switch (fileType) { + case "html": + return "/assets/images/documenttypes/html.png"; + break; + case "txt": + return "/assets/images/documenttypes/txt.png"; + break; + case "doc": + return "/assets/images/documenttypes/doc.png"; + break; + case "pdf": + return "/assets/images/documenttypes/pdf.png"; + break; + case "docx": + return "/assets/images/documenttypes/docx.png"; + break; + case "csv": + return "/assets/images/documenttypes/csv.png"; + break; + case "xlsx": + return "/assets/images/documenttypes/xlsx.png"; + break; + + case "zip": + return "/assets/images/documenttypes/zip.png"; + break; + case "jpeg": + case "jpg": + return "/assets/images/documenttypes/jpg.png"; + case "png": + return "/assets/images/documenttypes/png.png"; + break; + default: + return "/assets/images/documenttypes/txt.png"; + break; + } + }; + return (
@@ -88,24 +137,58 @@ let BuildCheckSection = (props) => {
))} -
+
+
+
+ {props.props.appealType.fileList.files.length > + 0 + ? props.props.appealType.fileList.files.map( + (blob, i) => ( +
+ {blob.name} + + + {blob.name} ( + {bytesToSize( + blob.contentLength + )} + ) + +
+ ) + ) + : ""} +
+
+ { + updateCurrentSection(sectionCount); + }} + > + {t("newappeal:change-link-label")} + +
+
+
- setCurrentSection(9999)} > - sss{t("newappeal:submit-appeal-button")} + {t("newappeal:submit-appeal-button")}
@@ -128,6 +211,10 @@ const mapDispatchToProps = (dispatch) => { setCurrentSection: (currentSection) => { dispatch(setCurrentSection(currentSection)); }, + updateCurrentSection: (whichSection) => { + dispatch(setCurrentSection(whichSection)); + dispatch(setFormComplete("true")); + }, }; }; diff --git a/components/newappeal/buildsection.js b/components/newappeal/buildsection.js index e18850d1..42aa3b36 100644 --- a/components/newappeal/buildsection.js +++ b/components/newappeal/buildsection.js @@ -142,8 +142,14 @@ let BuildSection = (props) => { }; const onHandleSubmit = (values) => { - //alert(1); - //updateCaseProgress(values); + if (currentSection == sectionCount) { + let valuesObj = values || {}; + + delete valuesObj["_pinswg_appellant_value"]; + + updateCaseProgress(valuesObj); + } + setCurrentSection(currentSection + 1); }; @@ -289,93 +295,7 @@ let BuildSection = (props) => { currentSection={currentSection} initialValues={props.initialValues} /> - {/* - - {Object.keys(documentListObj).length > 0 && ( -
-

- {t("newappeal:new-appeal-documentlist-nav")}: -

-
-
    -
      -
    • -
        - {Object.entries( - documentListObj - ).map(([key, value]) => { - return ( -
      1. {value}
      2. - ); - })} -
      -
    • -
    -
-
- )} */}