diff --git a/.env.local b/.env.local
index b24eb907..c4b68891 100644
--- a/.env.local
+++ b/.env.local
@@ -77,15 +77,24 @@ GOOGLE_MAP_API_KEY = AIzaSyCzeVrHt544bp_72YCFkw21eDsmI2JEsQo
//Next Auth vars
-EMAIL_SERVER_HOST=smtp.sendgrid.net
+//EMAIL_SERVER_HOST=smtp.sendgrid.net
+//EMAIL_SERVER_PORT=465
+//EMAIL_SERVER_USER=apikey
+//EMAIL_SERVER_PASSWORD=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
+//EMAIL_FROM=rob@rdbsolutions.co.uk
+
+
+EMAIL_SERVER_HOST=rdbdigital.com
EMAIL_SERVER_PORT=465
-EMAIL_SERVER_USER=apikey
-EMAIL_SERVER_PASSWORD=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
-EMAIL_FROM=rob@rdbsolutions.co.uk
+EMAIL_SERVER_USER=rob@rdbdigital.com
+EMAIL_SERVER_PASSWORD=!Sky9fish2020
+EMAIL_FROM=no-reply@rdbdigital.com
NEXTAUTH_URL=http://localhost:3000
NEXTAUTH_URL_INTERNAL=http://localhost:3000
-DATABASE_URL=mysql://nextAuthAdmin:!Sky9fish1972@77.68.17.157:3306/nextauthDB?synchronise=true
+//DATABASE_URL=mysql://nextAuthAdmin:!Sky9fish1972@77.68.17.157:3306/nextauthDB?synchronise=true
+DATABASE_URL = sqlserver://pedw-dev-test-sql-svr.database.windows.net:1433;database=PEDWDev;user=RobBondSQL;password=GhWKr62F5sQ69dZx;encrypt=true;trustServerCertificate=false;hostNameInCertificate=*.database.windows.net;loginTimeout=30;authentication=ActiveDirectoryPassword
+
SECRET=SuperSecret
diff --git a/actions/azurestorage.js b/actions/azurestorage.js
index f27f3208..e8e7a002 100644
--- a/actions/azurestorage.js
+++ b/actions/azurestorage.js
@@ -14,7 +14,7 @@ const STORAGE_CONTAINER = process.env.AZURE_PEDW_CONTAINER;
export const createContainer = async (containerName) => {
const creds = new DefaultAzureCredential();
- containerName = containerName.toLowerCase();
+ //containerName = containerName.toLowerCase();
// console.log(
// "container name:",
@@ -40,6 +40,8 @@ export const createContainer = async (containerName) => {
// console.log(`- ${container.name}`);
// }
+ console.log("\n//////////////////\n container name :", containerName);
+
return containerName;
};
@@ -53,7 +55,7 @@ export const getContainers = async () => {
}
};
-export const getBlobs = async (containerName) => {
+export const getBlobs = async (containerName, casefolderID) => {
const creds = new DefaultAzureCredential();
const containerClient = new ContainerClient(
@@ -65,14 +67,14 @@ export const getBlobs = async (containerName) => {
const blobObj = [];
for await (const blob of containerClient.listBlobsFlat({
- prefix: "files/",
+ prefix: casefolderID + "/files/",
})) {
let blobDocumentType = blob.name
- .split("/")[1]
- .slice(0, blob.name.split("/")[1].indexOf("_"));
+ .split("/")[2]
+ .slice(0, blob.name.split("/")[2].indexOf("_"));
blobObj.push({
- "name": blob.name.split("/")[1],
+ "name": blob.name.split("/")[2],
"path": blob.name,
"documentType": blobDocumentType,
"versionId": blob.versionId,
@@ -80,28 +82,50 @@ export const getBlobs = async (containerName) => {
"contentLength": blob.properties.contentLength,
"contentType": blob.contentType,
"lastModified": blob.properties.lastModified,
+ "filepath":
+ "/api/file/downloadblob?container=" +
+ containerName +
+ "&casefolderID=" +
+ casefolderID +
+ "&blobname=" +
+ blob.name.split("/")[2],
"hashedfilepath": hashAPIPath(
"/api/file/downloadblob?container=" +
- containerName.toLowerCase() +
+ containerName +
+ "&casefolderID=" +
+ casefolderID +
"&blobname=" +
- blob.name.split("/")[1]
+ blob.name.split("/")[2]
),
+ "deletepath":
+ "/api/file/deleteblob?container=" +
+ containerName +
+ "&casefolderID=" +
+ casefolderID +
+ "&blobname=" +
+ blob.name.split("/")[2],
"hasheddeletepath": hashAPIPath(
"/api/file/deleteblob?container=" +
- containerName.toLowerCase() +
+ containerName +
+ "&casefolderID=" +
+ casefolderID +
"&blobname=" +
- blob.name.split("/")[1]
+ blob.name.split("/")[2]
),
"hashgetblobs": hashAPIPath(
- "/api/file/getbloblist?container=" + containerName.toLowerCase()
+ "/api/file/getbloblist?container=" +
+ containerName +
+ "&casefolderID=" +
+ casefolderID
),
});
}
+ console.log("blobObj:", blobObj);
return blobObj;
};
-export const createBlob = async (formContent, containerName) => {
+export const createBlob = async (formContent, containerName, caseref) => {
const creds = new DefaultAzureCredential();
const containerClient = new ContainerClient(
@@ -109,21 +133,19 @@ export const createBlob = async (formContent, containerName) => {
creds
);
+ formContent = JSON.parse(formContent);
+ let caseID = formContent.pinswg_name;
+
const content = JSON.stringify(formContent);
- const blobName =
- formContent.pinswg_name + "_" + new Date().getTime() + ".json";
+ const blobName = caseID + "/" + caseID + ".json";
+
+ console.log("blobName:", blobName);
const blockBlobClient = containerClient.getBlockBlobClient(blobName);
const uploadBlobResponse = await blockBlobClient.upload(
content,
Buffer.byteLength(content)
);
-
- // console.log("Blobs:");
- // for await (const blob of containerClient.listBlobsByHierarchy("/")) {
- // console.log(`- ${blob.name}`);
- // }
-
return formContent.pinswg_name;
};
@@ -159,11 +181,13 @@ export const uploadFile = async (formContent, containerName, foldername) => {
const files = formContent;
//console.log(...formContent);
- //console.log("files...", files, files.length);
+ console.log("files...", files, Object.keys(files).length, foldername);
for (const prop in files) {
- //console.log(`files[${prop}] = ${files[prop][0].size}`);
- const blobName = "files/" + files[prop][0].fieldName;
+ console.log(`files[${prop}] = ${files[prop][0].size}`);
+ const blobName = foldername + "/files/" + files[prop][0].fieldName;
+
+ console.log(blobName);
const blockBlobClient = containerClient.getBlockBlobClient(blobName);
const uploadBlobResponse = await blockBlobClient.uploadFile(
files[prop][0].path,
@@ -185,14 +209,18 @@ export const downloadFile = async (containerName, blobName) => {
creds
);
- const blobClient = containerClient.getBlobClient("files/" + blobName);
+ const blobClient = containerClient.getBlobClient(blobName);
const downloadedBlob = await blobClient.download(0);
const downloaded = await streamToBuffer(downloadedBlob.readableStreamBody);
return downloaded;
};
-export const downloadProgressFile = async (containerName, blobName) => {
+export const downloadProgressFile = async (
+ containerName,
+ blobName,
+ casefolderID
+) => {
//console.log.apply(containerName, blobName);
const creds = new DefaultAzureCredential();
@@ -202,6 +230,7 @@ export const downloadProgressFile = async (containerName, blobName) => {
);
const blobClient = containerClient.getBlobClient(blobName);
+ console.log("herher:", containerName, blobName, casefolderID);
const downloadedBlob = await blobClient.download(0);
const downloaded = await streamToBuffer(downloadedBlob.readableStreamBody);
@@ -221,7 +250,7 @@ const streamToBuffer = async (readableStream) => {
});
};
-export const getProgressBlobs = async (containerName) => {
+export const getProgressBlobs = async (containerName, caseReference) => {
const creds = new DefaultAzureCredential();
const containerClient = new ContainerClient(
@@ -231,8 +260,11 @@ export const getProgressBlobs = async (containerName) => {
containerClient.createIfNotExists();
+ console.log("thisi s the caasefolder:", caseReference);
let blobObj = [];
- for await (const blob of containerClient.listBlobsFlat()) {
+ for await (const blob of containerClient.listBlobsFlat({
+ prefix: caseReference + "/" + caseReference + ".json",
+ })) {
blobObj.push({
"name": blob.name.split("/")[1],
"path": blob.name,
@@ -243,18 +275,25 @@ export const getProgressBlobs = async (containerName) => {
"lastModified": blob.properties.lastModified,
"hashedfilepath": hashAPIPath(
"/api/file/downloadblob?container=" +
- containerName.toLowerCase() +
+ containerName +
+ "&casefolderID=" +
+ caseReference +
"&blobname=" +
blob.name.split("/")[1]
),
"hasheddeletepath": hashAPIPath(
"/api/file/deleteblob?container=" +
- containerName.toLowerCase() +
+ containerName +
+ "&casefolderID=" +
+ caseReference +
"&blobname=" +
blob.name.split("/")[1]
),
"hashgetblobs": hashAPIPath(
- "/api/file/getbloblist?container=" + containerName.toLowerCase()
+ "/api/file/getbloblist?container=" +
+ containerName +
+ "&casefolderID=" +
+ caseReference
),
});
}
@@ -265,7 +304,7 @@ export const getProgressBlobs = async (containerName) => {
},
]).reverse()[0];
- console.log(blobObj.path);
+ console.log("blobObj:", blobObj);
return blobObj;
};
diff --git a/actions/index.js b/actions/index.js
index 337c698d..ffa1ac8f 100644
--- a/actions/index.js
+++ b/actions/index.js
@@ -26,7 +26,7 @@ const WEBAPI_URL =
export const consoleLogger = (err) => {
var errStr =
- "///////\nServer Error " +
+ "\n\n/////////////////////////////////////////////////\nServer Error " +
"\n" +
err.response.status +
" : " +
@@ -35,7 +35,7 @@ export const consoleLogger = (err) => {
err.response.config.url +
"\nRequest Time: " +
err.response.headers.date +
- "\n///////";
+ "\n/////////////////////////////////////////////////\n\n";
return errStr;
};
@@ -132,6 +132,7 @@ export const azureHeadersPagedCustom = (access_token, showNumberOfRecords) => {
};
export const hashAPIPath = (queryPath) => {
+ console.log(queryPath);
var hashlink = CryptoJS.HmacSHA256(
queryPath,
CryptoJS.enc.Hex.parse(WORDKEY)
@@ -602,7 +603,7 @@ export const getAppealID = (
// getFormCollection(updateFormCollection)
// )
- let formCollectionName = getFormCollection(updateFormCollection);
+ //let formCollectionName = getFormCollection(updateFormCollection);
//console.log(formCollectionName);
return axios
.get(
@@ -617,12 +618,12 @@ export const getAppealID = (
const result = Object.entries(res.data.value[0]).filter(
([key]) => !key.startsWith("_")
)[0][1];
-
+ console.log("result:", res.data);
var appealID = result;
return appealID;
})
.catch((error) => {
- //console.log("API call error", error);
+ console.log("API call error", error);
});
};
@@ -915,7 +916,7 @@ export const updateCase = async (
var config = {
method: "post",
url: queryUrl,
- data: data,
+ data: updateBody,
};
//console.log(data);
@@ -1040,12 +1041,19 @@ export const createAccount = (formValues) => {
});
};
-export const uploadFiles = async (formValues, filesObj, uploadhash) => {
+export const uploadFiles = async (
+ formValues,
+ filesObj,
+ containerID,
+ casefolderID
+) => {
let files = filesObj;
//console.log(formValues);
var formData = new FormData();
formData.append("appealData", JSON.stringify(formValues));
+ formData.append("containerID", containerID);
+ formData.append("casefolderID", casefolderID);
// files.forEach((file) => formData.append("files", file));
@@ -1076,15 +1084,19 @@ export const uploadFiles = async (formValues, filesObj, uploadhash) => {
}
};
-export const getFilesFromBlob = (containerName) => {
+export const getFilesFromBlob = (containerName, casefolderID) => {
return axios
.get(
BASE_URL +
"/api/file/getbloblist?container=" +
- containerName.toLowerCase() +
+ containerName +
+ "&casefolderID=" +
+ casefolderID +
hashAPIPath(
"/api/file/getbloblist?container=" +
- containerName.toLowerCase()
+ containerName +
+ "&casefolderID=" +
+ casefolderID
)
)
.then((res) => {
@@ -1096,12 +1108,18 @@ export const getFilesFromBlob = (containerName) => {
});
};
-export const getFilesFromBlobHashed = (containerName, getblobshash) => {
+export const getFilesFromBlobHashed = (
+ containerName,
+ getblobshash,
+ casefolderID
+) => {
return axios
.get(
BASE_URL +
"/api/file/getbloblist?container=" +
- containerName.toLowerCase() +
+ containerName +
+ "&casefolderID=" +
+ casefolderID +
getblobshash
)
.then((res) => {
@@ -1113,12 +1131,19 @@ export const getFilesFromBlobHashed = (containerName, getblobshash) => {
});
};
-export const deleteBlob = async (containerName, blobName, deleteblobhash) => {
+export const deleteBlob = async (
+ containerName,
+ blobName,
+ deleteblobhash,
+ casefolderID
+) => {
try {
const res = await axios.get(
BASE_URL +
"/api/file/deleteblob?container=" +
- containerName.toLowerCase() +
+ containerName +
+ "&casefolderID=" +
+ casefolderID +
"&blobname=" +
blobName +
deleteblobhash
@@ -1154,3 +1179,25 @@ export const downloadBlob = (containerName, blobName) => {
console.log("this serror", error);
});
};
+
+export const getProgressFromBlob = async (containerName, casereference) => {
+ console.log("cont:", containerName);
+ try {
+ const res = await axios.get(
+ BASE_URL +
+ "/api/file/getprogressobjblob?container=" +
+ containerName +
+ "&casefolderID=" +
+ casereference +
+ hashAPIPath(
+ "/api/file/getprogressobjblob?container=" +
+ containerName +
+ "&casefolderID=" +
+ casereference
+ )
+ );
+ return res.data;
+ } catch (error) {
+ console.log("this serror", error);
+ }
+};
diff --git a/components/elements/index.js b/components/elements/index.js
index 8e18de07..98533d8d 100644
--- a/components/elements/index.js
+++ b/components/elements/index.js
@@ -1255,6 +1255,7 @@ export function FileUploadField(props) {
hint={props.hint}
fileList={props.fileList}
setFilesForAppeal={props.setFilesForAppeal}
+ containerID={props.containerID}
/>
>
);
@@ -1459,15 +1460,18 @@ const RenderFileUpload = (field) => {
containerName,
blobName,
deleteblobhash,
- getblobshash
+ getblobshash,
+ casefolderID
) => {
//console.log(containerName, blobName, deleteblobhash);
- deleteBlob(containerName, blobName, deleteblobhash)
+ deleteBlob(containerName, blobName, deleteblobhash, casefolderID)
.then((data) => data)
.then(() => {
- getFilesFromBlobHashed(containerName, getblobshash).then(
- (newfilelist) => field.setFilesForAppeal(newfilelist)
- );
+ getFilesFromBlobHashed(
+ containerName,
+ getblobshash,
+ casefolderID
+ ).then((newfilelist) => field.setFilesForAppeal(newfilelist));
});
};
@@ -1543,10 +1547,11 @@ const RenderFileUpload = (field) => {
className="govuk-summary-list__actionLink watched_link govuk-!-margin-right-5 govuk-!-text-align-left"
onClick={() => {
deleteThisBlob(
- field.ticketnumber,
+ field.containerID,
blob.name,
blob.hasheddeletepath,
- blob.hashgetblobs
+ blob.hashgetblobs,
+ field.ticketnumber
);
}}
title="Remove this file"
@@ -1565,7 +1570,9 @@ const RenderFileUpload = (field) => {
scroll={false}
href={
"/api/file/downloadblob?container=" +
- field.ticketnumber.toLowerCase() +
+ field.containerID +
+ "&casefolderID=" +
+ field.ticketnumber +
"&blobname=" +
blob.name +
blob.hashedfilepath
diff --git a/components/myportal.js b/components/myportal.js
index fa2dfde8..9df18b4b 100644
--- a/components/myportal.js
+++ b/components/myportal.js
@@ -21,7 +21,7 @@ const MyPortal = (props) => {
const { locale } = router;
const handleLogout = () => {
- console.log("////////////\n" + "logout" + "\n////////////");
+ console.info("////////////\n" + "logout" + "\n////////////");
destroyCookie({}, "pinsUser"),
window.localStorage.clear(),
//router.replace(props.ggLogout);
diff --git a/components/newappeal/buildfield.js b/components/newappeal/buildfield.js
index 33dab549..2963c81e 100644
--- a/components/newappeal/buildfield.js
+++ b/components/newappeal/buildfield.js
@@ -189,6 +189,10 @@ export default function BuildField(props) {
setFilesForAppeal={
props.props.props.setFilesForAppeal
}
+ containerID={
+ props.props.props.props.accountDetails
+ .containerID
+ }
/>
);
diff --git a/components/newappeal/buildsection.js b/components/newappeal/buildsection.js
index 638c1b65..7dac3ac6 100644
--- a/components/newappeal/buildsection.js
+++ b/components/newappeal/buildsection.js
@@ -111,13 +111,23 @@ let BuildSection = (props) => {
//console.log(fileListObj);
+ console.log(
+ "\n////////////////////////\n upload files:",
+ props.props.accountDetails.containerID
+ );
+
var dataObj = values;
for (let key in dataObj) {
_.includes(key, "pinswg_fileUpload") == true && delete dataObj[key];
}
- uploadFiles(dataObj, fileListObj).then((data) => {
+ uploadFiles(
+ dataObj,
+ fileListObj,
+ props.props.accountDetails.containerID,
+ props.props.appealType.caseReference.ticketnumber
+ ).then((data) => {
//console.log("hello", data);
return data;
diff --git a/components/search/dnssearchresults.js b/components/search/dnssearchresults.js
index efb8864e..9c1995ed 100644
--- a/components/search/dnssearchresults.js
+++ b/components/search/dnssearchresults.js
@@ -408,35 +408,54 @@ const DNSSearchResults = (props) => {
)[0]
: ""
: ""}
-
{_.has(
detailsObj,
"pinswg_siteaddressline1"
)
? detailsObj.pinswg_siteaddressline1
: ""}
-
{_.has(
detailsObj,
"pinswg_siteaddressline1"
+ ) &&
+ detailsObj.pinswg_siteaddressline1 !=
+ null &&
}
+ {_.has(
+ detailsObj,
+ "pinswg_siteaddressline2"
)
? detailsObj.pinswg_siteaddressline2
: ""}
-
+ {_.has(
+ detailsObj,
+ "pinswg_siteaddressline2"
+ ) &&
+ detailsObj.pinswg_siteaddressline2 !=
+ null &&
}
{_.has(
detailsObj,
"pinswg_siteaddressline1"
)
? detailsObj.pinswg_siteaddresstown
: ""}
-
+ {_.has(
+ detailsObj,
+ "pinswg_siteaddresstown"
+ ) &&
+ detailsObj.pinswg_siteaddresstown !=
+ null &&
}
{_.has(
detailsObj,
"pinswg_siteaddressline1"
)
? detailsObj.pinswg_siteaddresscounty
: ""}
-
+ {_.has(
+ detailsObj,
+ "pinswg_siteaddresscounty"
+ ) &&
+ detailsObj.pinswg_siteaddresscounty !=
+ null &&
}
{_.has(
detailsObj,
"pinswg_siteaddressline1"
diff --git a/components/timeout/index.js b/components/timeout/index.js
index 7b64223a..35013f36 100644
--- a/components/timeout/index.js
+++ b/components/timeout/index.js
@@ -39,7 +39,7 @@ const TimeOut = (props) => {
};
const handleLogout = () => {
- console.log("////////////\n" + "logout" + "\n////////////");
+ console.info("////////////\n" + "logout" + "\n////////////");
destroyCookie({}, "pinsUser"),
window.localStorage.clear(),
signOut({ callbackUrl: "/logout" });
diff --git a/i18n.js b/i18n.js
index c548e141..864fa98b 100644
--- a/i18n.js
+++ b/i18n.js
@@ -11,6 +11,7 @@ module.exports = {
"pages": {
"*": ["common", "newappeal", "search"],
"/": ["common", "home"],
+ "/error": ["common", "home", "myportal"],
"/myportal": ["myportal", "common", "home"],
"/myportal/viewall": ["search"],
"/myportal/advancedsearch": ["search", "myportal"],
diff --git a/package.json b/package.json
index 24b2ab45..74511df6 100644
--- a/package.json
+++ b/package.json
@@ -13,7 +13,7 @@
"@azure/storage-blob": "^12.10.0",
"@googlemaps/react-wrapper": "^1.1.24",
"@magic-sdk/admin": "^1.4.0",
- "@next-auth/prisma-adapter": "^1.0.3",
+ "@next-auth/prisma-adapter": "^1.0.4",
"@prisma/client": "^3.12.0",
"@webdeb/next-styles": "^1.1.1",
"applicationinsights": "^2.2.0",
@@ -86,4 +86,4 @@
"prettier": "2.5.1",
"prisma": "^3.12.0"
}
-}
+}
\ No newline at end of file
diff --git a/pages/account/register.js b/pages/account/register.js
index b2e64851..644f71de 100644
--- a/pages/account/register.js
+++ b/pages/account/register.js
@@ -18,6 +18,7 @@ import { reduxForm, formValueSelector } from "redux-form";
import RegisterForm from "../../components/account/registerform";
import { dehashString, hashAPIPath } from "../../actions";
+import { getSession, useSession, signIn, signOut } from "next-auth/react";
const Home = (props) => {
const { footerLinks, formData, loggedInUserEmail } = props;
@@ -156,22 +157,23 @@ const Home = (props) => {
};
export const getServerSideProps = wrapper.getServerSideProps(
- (store) =>
- async ({ query, req, res }) => {
- let hasRegistrationEmail = typeof query.id != "undefined";
- let loginEmailStr = "";
+ (store) => async (ctx) => {
+ const { query, req, res } = ctx;
- if (hasRegistrationEmail == true) {
- loginEmailStr = dehashString(query.id);
+ let thisSession = await getSession(ctx);
- console.log(loginEmailStr);
- }
- return {
- props: {
- loggedInUserEmail: loginEmailStr,
- },
- };
- }
+ console.log(
+ "auth sess for register :",
+ thisSession,
+ thisSession.user.email
+ );
+
+ return {
+ props: {
+ loggedInUserEmail: thisSession.user.email,
+ },
+ };
+ }
);
const mapStateToProps = (state) => {
diff --git a/pages/api/auth/[...nextauth].js b/pages/api/auth/[...nextauth].js
index fab3f813..068c3b30 100644
--- a/pages/api/auth/[...nextauth].js
+++ b/pages/api/auth/[...nextauth].js
@@ -125,6 +125,12 @@ export default NextAuth({
//signOut: "/auth/signout",
error: "/auth/error", // Error code passed in query string as ?error=
verifyRequest: "/auth/verify-request", // (used for check email message)
- // newUser: "/auth/new-user", // New users will be directed here on first sign in (leave the property out if not of interest)
+ newUser: "/account/register", // New users will be directed here on first sign in (leave the property out if not of interest)
+ },
+ callbacks: {
+ session: async (session, user) => {
+ console.log(user);
+ return Promise.resolve(session);
+ },
},
});
diff --git a/pages/api/file/deleteblob.js b/pages/api/file/deleteblob.js
index 6965a43e..ab6b1b6d 100644
--- a/pages/api/file/deleteblob.js
+++ b/pages/api/file/deleteblob.js
@@ -1,35 +1,34 @@
-import {
- createContainer,
- getContainers,
- getBlobs,
- createBlob,
- uploadFile,
- deleteBlob,
-} from "../../../actions/azurestorage";
import { hashAPIPath } from "../../../actions";
+import { deleteBlob } from "../../../actions/azurestorage";
-import middleware from "../middleware/middleware";
import nextConnect from "next-connect";
+import middleware from "../middleware/middleware";
const ApiProxy = nextConnect();
ApiProxy.use(middleware);
ApiProxy.get(async (req, res) => {
var containerName = req.query.container;
+ var casefolderID = req.query.casefolderID;
var blobName = req.query.blobname;
var checkHash = req.query.hash;
var checkquerypath =
"/api/file/deleteblob?container=" +
- containerName.toLowerCase() +
+ containerName +
+ "&casefolderID=" +
+ casefolderID +
"&blobname=" +
blobName;
- console.log(hashAPIPath(checkquerypath), checkHash);
- console.log(hashAPIPath(checkquerypath) == "&hash=" + checkHash);
+ // console.log(hashAPIPath(checkquerypath), checkHash);
+ // console.log(hashAPIPath(checkquerypath) == "&hash=" + checkHash);
if (hashAPIPath(checkquerypath) == "&hash=" + checkHash) {
- await deleteBlob(containerName, "files/" + blobName).then((data) => {
+ await deleteBlob(
+ containerName,
+ casefolderID + "/files/" + blobName
+ ).then((data) => {
return res.status(200).json({ data: data });
});
} else {
diff --git a/pages/api/file/downloadblob.js b/pages/api/file/downloadblob.js
index 9661aacd..6067189a 100644
--- a/pages/api/file/downloadblob.js
+++ b/pages/api/file/downloadblob.js
@@ -1,24 +1,8 @@
-import {
- createContainer,
- getContainers,
- getBlobs,
- createBlob,
- uploadFile,
- deleteBlob,
- downloadFile,
-} from "../../../actions/azurestorage";
-import { BlobServiceClient, ContainerClient } from "@azure/storage-blob";
-import {
- DefaultAzureCredential,
- InteractiveBrowserCredential,
- EnvironmentCredential,
- ClientSecretCredential,
-} from "@azure/identity";
+import { downloadFile } from "../../../actions/azurestorage";
-import middleware from "../middleware/middleware";
import nextConnect from "next-connect";
-import CryptoJS from "crypto-js";
import { hashAPIPath } from "../../../actions";
+import middleware from "../middleware/middleware";
const WORDKEY = process.env.HASHKEY;
@@ -28,21 +12,27 @@ ApiProxy.use(middleware);
ApiProxy.get(async (req, res) => {
var containerName = req.query.container;
+ var casefolderID = req.query.casefolderID;
var blobName = req.query.blobname;
var checkHash = req.query.hash;
var checkquerypath =
"/api/file/downloadblob?container=" +
containerName +
+ "&casefolderID=" +
+ casefolderID +
"&blobname=" +
- blobName;
+ blobName.trim();
if (hashAPIPath(checkquerypath) == "&hash=" + checkHash) {
- const downloaded = await downloadFile(containerName, blobName);
+ const downloaded = await downloadFile(
+ containerName,
+ casefolderID + "/files/" + decodeURI(blobName)
+ );
res.setHeader(
"content-disposition",
- "attachment; filename=" + blobName
+ "attachment; filename=" + decodeURI(blobName)
);
return res.status(200).send(downloaded);
} else {
diff --git a/pages/api/file/getbloblist.js b/pages/api/file/getbloblist.js
index 47c8eb15..b46d3290 100644
--- a/pages/api/file/getbloblist.js
+++ b/pages/api/file/getbloblist.js
@@ -1,33 +1,33 @@
-import {
- createContainer,
- getContainers,
- getBlobs,
- createBlob,
- uploadFile,
-} from "../../../actions/azurestorage";
import { hashAPIPath } from "../../../actions";
+import { getBlobs } from "../../../actions/azurestorage";
-import middleware from "../middleware/middleware";
import nextConnect from "next-connect";
+import middleware from "../middleware/middleware";
const ApiProxy = nextConnect();
ApiProxy.use(middleware);
ApiProxy.get(async (req, res) => {
var containerName = req.query.container;
+ var casefolderID = req.query.casefolderID;
+
var checkHash = req.query.hash;
- var checkquerypath = "/api/file/getbloblist?container=" + containerName;
+ var checkquerypath =
+ "/api/file/getbloblist?container=" +
+ containerName +
+ "&casefolderID=" +
+ casefolderID;
// console.log(hashAPIPath(checkquerypath), checkHash);
// console.log(hashAPIPath(checkquerypath) == "&hash=" + checkHash);
- if (hashAPIPath(checkquerypath) == "&hash=" + checkHash) {
- await getBlobs(containerName).then((data) => {
- return res.status(200).json({ files: data });
- });
- } else {
- return res.status(400).json();
- }
+ //if (hashAPIPath(checkquerypath) == "&hash=" + checkHash) {
+ await getBlobs(containerName, casefolderID).then((data) => {
+ return res.status(200).json({ files: data });
+ });
+ // } else {
+ // return res.status(400).json();
+ // }
});
export const config = {
diff --git a/pages/api/file/getprogressobjblob.js b/pages/api/file/getprogressobjblob.js
index 8c5e162f..97c18a69 100644
--- a/pages/api/file/getprogressobjblob.js
+++ b/pages/api/file/getprogressobjblob.js
@@ -1,32 +1,33 @@
import {
- createContainer,
- getContainers,
- getBlobs,
- createBlob,
- uploadFile,
- getProgressBlobs,
downloadProgressFile,
+ getProgressBlobs,
} from "../../../actions/azurestorage";
-import { hashAPIPath } from "../../../actions";
-import middleware from "../middleware/middleware";
import nextConnect from "next-connect";
+import middleware from "../middleware/middleware";
const ApiProxy = nextConnect();
ApiProxy.use(middleware);
ApiProxy.get(async (req, res) => {
var containerName = req.query.container;
+ var casefolderID = req.query.casefolderID;
+
var checkHash = req.query.hash;
var checkquerypath =
- "/api/file/getprogressobjblob?container=" + containerName;
+ "/api/file/getprogressobjblob?container=" +
+ containerName +
+ "&casefolderID=" +
+ casefolderID;
// console.log(hashAPIPath(checkquerypath), checkHash);
// console.log(hashAPIPath(checkquerypath) == "&hash=" + checkHash);
//if (hashAPIPath(checkquerypath) == "&hash=" + checkHash) {
- const blobObj = await getProgressBlobs(containerName)
- .then((data) => downloadProgressFile(containerName, data.path))
+ const blobObj = await getProgressBlobs(containerName, casefolderID)
+ .then((data) =>
+ downloadProgressFile(containerName, data.path, casefolderID)
+ )
.then((data) => {
return res.status(200).json(data);
});
diff --git a/pages/api/file/setupcontainer.js b/pages/api/file/setupcontainer.js
new file mode 100644
index 00000000..37731116
--- /dev/null
+++ b/pages/api/file/setupcontainer.js
@@ -0,0 +1,47 @@
+import {
+ createContainer,
+ getContainers,
+ getBlobs,
+ createBlob,
+ uploadFile,
+} from "../../../actions/azurestorage";
+import { hashAPIPath } from "../../../actions";
+
+import middleware from "../middleware/middleware";
+import nextConnect from "next-connect";
+
+const ApiProxy = nextConnect();
+ApiProxy.use(middleware);
+
+ApiProxy.get(async (req, res) => {
+ var containerName = req.query.ident;
+ var checkHash = req.query.hash;
+ var checkquerypath = "/api/file/setupcontainer?ident=" + containerName;
+
+ console.log(req.query);
+ console.log(checkquerypath.length);
+ console.log(hashAPIPath(checkquerypath));
+ // console.log(checkquerypath, hashAPIPath(checkquerypath), checkHash);
+ // console.log(hashAPIPath(checkquerypath) == "&hash=" + checkHash);
+
+ //if (hashAPIPath(checkquerypath) == "&hash=" + checkHash) {
+ await createContainer(containerName)
+ .then((data) => {
+ return res.status(200).json({ data: "success" });
+ })
+ .catch((err) => {
+ console.log(consoleLogger(err));
+ res.status(400).json(err);
+ });
+ // } else {
+ // return res.status(400).json();
+ // }
+});
+
+export const config = {
+ api: {
+ bodyParser: false,
+ },
+};
+
+export default ApiProxy;
diff --git a/pages/api/file/upload.js b/pages/api/file/upload.js
index 7e537f8b..8515da1d 100644
--- a/pages/api/file/upload.js
+++ b/pages/api/file/upload.js
@@ -14,10 +14,15 @@ ApiProxy.use(middleware);
ApiProxy.post(async (req, res) => {
var checkHash = req.query.hash;
- console.log(JSON.parse(req.body.appealData));
- console.log(req.files);
+ // console.log(JSON.stringify(req.body));
+ // console.log(JSON.stringify(req.body.appealData));
+ // console.log(req.files);
- const appealData = JSON.parse(req.body.appealData);
+ const appealData = req.body.appealData;
+ const containerID = req.body.containerID;
+ const casefolderID = req.body.casefolderID;
+
+ console.log("there are files:", Object.keys(req.files).length);
// var checkquerypath = "/api/file/upload";
@@ -25,11 +30,18 @@ ApiProxy.post(async (req, res) => {
// console.log(hashAPIPath(checkquerypath) == "?hash=" + checkHash);
// if (hashAPIPath(checkquerypath) == "?hash=" + checkHash) {
- createContainer(appealData.pinswg_name.trim()).then((containerName) => {
- createBlob(appealData, containerName).then((data) => {
- uploadFile(req.files, containerName, data);
- });
+ //createContainer(containerID).then((containerName) => {
+
+ console.log(
+ "does this et folder name:",
+ appealData.pinswg_name,
+ casefolderID
+ );
+ createBlob(appealData, containerID, casefolderID).then((data) => {
+ Object.keys(req.files).length > 0 &&
+ uploadFile(req.files, containerID, casefolderID);
});
+ //});
return res.status(200).json({ data: "success" });
// } else {
diff --git a/pages/error.js b/pages/error.js
index 4a378e1d..39bb90f0 100644
--- a/pages/error.js
+++ b/pages/error.js
@@ -15,7 +15,7 @@ function Error({ statusCode }, props) {