Merged PR 895: awaiting submissions from storage acc
awaiting submissions from storage acc Related work items: #7907
This commit is contained in:
+134
-4
@@ -120,7 +120,7 @@ export const getBlobs = async (containerName, casefolderID) => {
|
|||||||
),
|
),
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
console.log("blobObj:", blobObj);
|
//console.log("blobObj:", blobObj);
|
||||||
|
|
||||||
return blobObj;
|
return blobObj;
|
||||||
};
|
};
|
||||||
@@ -230,13 +230,46 @@ export const downloadProgressFile = async (
|
|||||||
);
|
);
|
||||||
|
|
||||||
const blobClient = containerClient.getBlobClient(blobName);
|
const blobClient = containerClient.getBlobClient(blobName);
|
||||||
console.log("herher:", containerName, blobName, casefolderID);
|
|
||||||
const downloadedBlob = await blobClient.download(0);
|
const downloadedBlob = await blobClient.download(0);
|
||||||
|
|
||||||
const downloaded = await streamToBuffer(downloadedBlob.readableStreamBody);
|
const downloaded = await streamToBuffer(downloadedBlob.readableStreamBody);
|
||||||
return downloaded;
|
return downloaded;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
export const downloadAllProgressFiles = async (
|
||||||
|
containerName,
|
||||||
|
progressBlobObj
|
||||||
|
) => {
|
||||||
|
//console.log(progressBlobObj);
|
||||||
|
const creds = new DefaultAzureCredential();
|
||||||
|
|
||||||
|
const containerClient = new ContainerClient(
|
||||||
|
`${STORAGE_PATH}/${containerName}`,
|
||||||
|
creds
|
||||||
|
);
|
||||||
|
|
||||||
|
let blobClient = {};
|
||||||
|
let downloadedBlob = {};
|
||||||
|
let downloaded = "";
|
||||||
|
let blobCount = 0;
|
||||||
|
|
||||||
|
for (const prop in progressBlobObj) {
|
||||||
|
//console.log(`${prop}: ${progressBlobObj[prop].path}`);
|
||||||
|
blobClient = containerClient.getBlobClient(progressBlobObj[prop].path);
|
||||||
|
downloadedBlob = await blobClient.download(0);
|
||||||
|
downloaded =
|
||||||
|
downloaded +
|
||||||
|
(await streamToBuffer(downloadedBlob.readableStreamBody)) +
|
||||||
|
",";
|
||||||
|
blobCount++;
|
||||||
|
}
|
||||||
|
|
||||||
|
downloaded = downloaded.substring(0, downloaded.length - 1);
|
||||||
|
|
||||||
|
//console.log(downloaded);
|
||||||
|
return '{ "@odata.count": ' + blobCount + ',"value": [' + downloaded + "]}";
|
||||||
|
};
|
||||||
|
|
||||||
const streamToBuffer = async (readableStream) => {
|
const streamToBuffer = async (readableStream) => {
|
||||||
return new Promise((resolve, reject) => {
|
return new Promise((resolve, reject) => {
|
||||||
const chunks = [];
|
const chunks = [];
|
||||||
@@ -250,6 +283,42 @@ const streamToBuffer = async (readableStream) => {
|
|||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
|
export const getCaseBlob = async (
|
||||||
|
containerName,
|
||||||
|
caseReference,
|
||||||
|
formContent
|
||||||
|
) => {
|
||||||
|
const creds = new DefaultAzureCredential();
|
||||||
|
|
||||||
|
const containerClient = new ContainerClient(
|
||||||
|
`${STORAGE_PATH}/${containerName}`,
|
||||||
|
creds
|
||||||
|
);
|
||||||
|
|
||||||
|
console.log("have got to create case");
|
||||||
|
containerClient.createIfNotExists();
|
||||||
|
|
||||||
|
let blobCount = 0;
|
||||||
|
for await (const blob of containerClient.listBlobsFlat({
|
||||||
|
prefix: caseReference,
|
||||||
|
})) {
|
||||||
|
blobCount++;
|
||||||
|
}
|
||||||
|
|
||||||
|
const content = JSON.stringify(formContent);
|
||||||
|
const blobName = caseReference + "/case/" + caseReference + ".json";
|
||||||
|
|
||||||
|
console.log("blobName:", blobName);
|
||||||
|
const blockBlobClient = containerClient.getBlockBlobClient(blobName);
|
||||||
|
|
||||||
|
const uploadBlobResponse = await blockBlobClient.upload(
|
||||||
|
content,
|
||||||
|
Buffer.byteLength(content)
|
||||||
|
);
|
||||||
|
|
||||||
|
return blobName;
|
||||||
|
};
|
||||||
|
|
||||||
export const getProgressBlobs = async (containerName, caseReference) => {
|
export const getProgressBlobs = async (containerName, caseReference) => {
|
||||||
const creds = new DefaultAzureCredential();
|
const creds = new DefaultAzureCredential();
|
||||||
|
|
||||||
@@ -260,7 +329,15 @@ export const getProgressBlobs = async (containerName, caseReference) => {
|
|||||||
|
|
||||||
containerClient.createIfNotExists();
|
containerClient.createIfNotExists();
|
||||||
|
|
||||||
console.log("thisi s the caasefolder:", caseReference);
|
let blobCount = 0;
|
||||||
|
for await (const blob of containerClient.listBlobsFlat({
|
||||||
|
prefix: caseReference,
|
||||||
|
})) {
|
||||||
|
blobCount++;
|
||||||
|
}
|
||||||
|
|
||||||
|
//console.log("this is the caasefolder:", caseReference, blobCount);
|
||||||
|
|
||||||
let blobObj = [];
|
let blobObj = [];
|
||||||
for await (const blob of containerClient.listBlobsFlat({
|
for await (const blob of containerClient.listBlobsFlat({
|
||||||
prefix: caseReference + "/" + caseReference + ".json",
|
prefix: caseReference + "/" + caseReference + ".json",
|
||||||
@@ -304,7 +381,60 @@ export const getProgressBlobs = async (containerName, caseReference) => {
|
|||||||
},
|
},
|
||||||
]).reverse()[0];
|
]).reverse()[0];
|
||||||
|
|
||||||
console.log("blobObj:", blobObj);
|
//console.log("blobObjwwwww:", blobObj);
|
||||||
|
|
||||||
|
return blobObj;
|
||||||
|
};
|
||||||
|
|
||||||
|
export const getAllProgressBlobs = async (containerName) => {
|
||||||
|
const creds = new DefaultAzureCredential();
|
||||||
|
|
||||||
|
const containerClient = new ContainerClient(
|
||||||
|
`${STORAGE_PATH}/${containerName}`,
|
||||||
|
creds
|
||||||
|
);
|
||||||
|
|
||||||
|
containerClient.createIfNotExists();
|
||||||
|
|
||||||
|
let blobCount = 0;
|
||||||
|
for await (const blob of containerClient.listBlobsFlat({
|
||||||
|
// prefix: caseReference,
|
||||||
|
})) {
|
||||||
|
blobCount++;
|
||||||
|
}
|
||||||
|
|
||||||
|
//console.log("this is the caasefolder:", caseReference, blobCount);
|
||||||
|
|
||||||
|
let blobObj = [];
|
||||||
|
for await (const blob of containerClient.listBlobsFlat({
|
||||||
|
//prefix: caseReference + "/" + caseReference + ".json",
|
||||||
|
})) {
|
||||||
|
blob.name.split("/")[1].indexOf(".json") > 0 &&
|
||||||
|
blob.name.split("/")[1].indexOf("undefined") < 0 &&
|
||||||
|
blobObj.push({
|
||||||
|
"name": blob.name.split("/")[1],
|
||||||
|
"path": blob.name,
|
||||||
|
"versionId": blob.versionId,
|
||||||
|
"isCurrentVersion": blob.isCurrentVersion,
|
||||||
|
"contentLength": blob.properties.contentLength,
|
||||||
|
"contentType": blob.contentType,
|
||||||
|
"lastModified": blob.properties.lastModified,
|
||||||
|
// "hashedfilepath": hashAPIPath(
|
||||||
|
// "/api/file/downloadblob?container=" +
|
||||||
|
// containerName +
|
||||||
|
// ),
|
||||||
|
// "hasheddeletepath": hashAPIPath(
|
||||||
|
// "/api/file/deleteblob?container=" +
|
||||||
|
// containerName +
|
||||||
|
// ),
|
||||||
|
// "hashgetblobs": hashAPIPath(
|
||||||
|
// "/api/file/getbloblist?container=" +
|
||||||
|
// containerName +
|
||||||
|
// ),
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
//console.log("blobObj:", blobObj);
|
||||||
|
|
||||||
return blobObj;
|
return blobObj;
|
||||||
};
|
};
|
||||||
|
|||||||
+93
-6
@@ -3,7 +3,8 @@ import https from "https";
|
|||||||
import CryptoJS from "crypto-js";
|
import CryptoJS from "crypto-js";
|
||||||
import HmacSHA256 from "crypto-js/hmac-sha256";
|
import HmacSHA256 from "crypto-js/hmac-sha256";
|
||||||
import { getFormCollection } from "../components/utils";
|
import { getFormCollection } from "../components/utils";
|
||||||
import { downloadFile } from "./azurestorage";
|
import { downloadFile, getCaseBlob } from "./azurestorage";
|
||||||
|
|
||||||
let BASE_URL;
|
let BASE_URL;
|
||||||
const port = parseInt(process.env.PORT, 10) || 3000;
|
const port = parseInt(process.env.PORT, 10) || 3000;
|
||||||
|
|
||||||
@@ -132,7 +133,6 @@ export const azureHeadersPagedCustom = (access_token, showNumberOfRecords) => {
|
|||||||
};
|
};
|
||||||
|
|
||||||
export const hashAPIPath = (queryPath) => {
|
export const hashAPIPath = (queryPath) => {
|
||||||
console.log(queryPath);
|
|
||||||
var hashlink = CryptoJS.HmacSHA256(
|
var hashlink = CryptoJS.HmacSHA256(
|
||||||
queryPath,
|
queryPath,
|
||||||
CryptoJS.enc.Hex.parse(WORDKEY)
|
CryptoJS.enc.Hex.parse(WORDKEY)
|
||||||
@@ -744,6 +744,11 @@ export const getAwaitingSubmissionProxy = (loggedInUserId) => {
|
|||||||
};
|
};
|
||||||
|
|
||||||
export const getAwaitingSubmission = (loggedInUserId) => {
|
export const getAwaitingSubmission = (loggedInUserId) => {
|
||||||
|
console.log(
|
||||||
|
BASE_URL +
|
||||||
|
"/api/endpoint/getawaitingsubmission_api?loggedInUserId=" +
|
||||||
|
loggedInUserId
|
||||||
|
);
|
||||||
return axios
|
return axios
|
||||||
.get(
|
.get(
|
||||||
BASE_URL +
|
BASE_URL +
|
||||||
@@ -758,6 +763,25 @@ export const getAwaitingSubmission = (loggedInUserId) => {
|
|||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
|
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) => {
|
||||||
|
//console.log("API call error", error);
|
||||||
|
});
|
||||||
|
};
|
||||||
|
|
||||||
export const getPortalModuleDetails = (appealType, caseReference) => {
|
export const getPortalModuleDetails = (appealType, caseReference) => {
|
||||||
//console.log(
|
//console.log(
|
||||||
// BASE_URL +
|
// BASE_URL +
|
||||||
@@ -864,7 +888,13 @@ export const createWatchedCases = (formValues) => {
|
|||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
export const createNewCase = (appealTypeId, lpaID, contactid, createBody) => {
|
export const createNewCase = (
|
||||||
|
appealTypeId,
|
||||||
|
lpaID,
|
||||||
|
contactid,
|
||||||
|
createBody,
|
||||||
|
containerName
|
||||||
|
) => {
|
||||||
appealTypeId = parseInt(appealTypeId);
|
appealTypeId = parseInt(appealTypeId);
|
||||||
|
|
||||||
var data = createBody;
|
var data = createBody;
|
||||||
@@ -875,7 +905,9 @@ export const createNewCase = (appealTypeId, lpaID, contactid, createBody) => {
|
|||||||
"&lpaID=" +
|
"&lpaID=" +
|
||||||
lpaID +
|
lpaID +
|
||||||
"&contactid=" +
|
"&contactid=" +
|
||||||
contactid;
|
contactid +
|
||||||
|
"&containername=" +
|
||||||
|
containerName;
|
||||||
|
|
||||||
var config = {
|
var config = {
|
||||||
method: "post",
|
method: "post",
|
||||||
@@ -1004,6 +1036,31 @@ export const deleteAwaitingSubmissions = (incidentID) => {
|
|||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
|
export const deleteAwaitingSubmissionsFromBlob = (
|
||||||
|
containerID,
|
||||||
|
casefolderID
|
||||||
|
) => {
|
||||||
|
var queryUrl =
|
||||||
|
"/api/file/deleteawaitingsubmissionsfromblob?container=" +
|
||||||
|
containerID +
|
||||||
|
"&casefolderID=" +
|
||||||
|
casefolderID;
|
||||||
|
|
||||||
|
var config = {
|
||||||
|
method: "get",
|
||||||
|
url: queryUrl,
|
||||||
|
};
|
||||||
|
//console.log(config);
|
||||||
|
return axios(config)
|
||||||
|
.then((res) => {
|
||||||
|
//console.log("deleted ", res.data);
|
||||||
|
return res.data;
|
||||||
|
})
|
||||||
|
.catch((error) => {
|
||||||
|
console.log("this serror", error);
|
||||||
|
});
|
||||||
|
};
|
||||||
|
|
||||||
export const deleteWatchedCases = (watchedCaseID) => {
|
export const deleteWatchedCases = (watchedCaseID) => {
|
||||||
var queryUrl =
|
var queryUrl =
|
||||||
"/api/endpoint/deletewatchedcases_api?watchedCaseID=" + watchedCaseID;
|
"/api/endpoint/deletewatchedcases_api?watchedCaseID=" + watchedCaseID;
|
||||||
@@ -1165,7 +1222,7 @@ export const downloadBlob = (containerName, blobName) => {
|
|||||||
{ responseType: "blob" }
|
{ responseType: "blob" }
|
||||||
)
|
)
|
||||||
.then((response) => {
|
.then((response) => {
|
||||||
console.log("Downloaded blob content:www");
|
console.log("Downloaded blob content:");
|
||||||
|
|
||||||
res.setHeader(
|
res.setHeader(
|
||||||
"content-disposition",
|
"content-disposition",
|
||||||
@@ -1181,7 +1238,6 @@ export const downloadBlob = (containerName, blobName) => {
|
|||||||
};
|
};
|
||||||
|
|
||||||
export const getProgressFromBlob = async (containerName, casereference) => {
|
export const getProgressFromBlob = async (containerName, casereference) => {
|
||||||
console.log("cont:", containerName);
|
|
||||||
try {
|
try {
|
||||||
const res = await axios.get(
|
const res = await axios.get(
|
||||||
BASE_URL +
|
BASE_URL +
|
||||||
@@ -1201,3 +1257,34 @@ export const getProgressFromBlob = async (containerName, casereference) => {
|
|||||||
console.log("this serror", error);
|
console.log("this serror", error);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
export const sendEmail = async (
|
||||||
|
emailToAddress,
|
||||||
|
emailSubject,
|
||||||
|
emailContentTitle,
|
||||||
|
emailContent
|
||||||
|
) => {
|
||||||
|
var mailData = {
|
||||||
|
"email": emailToAddress,
|
||||||
|
"subject": emailSubject,
|
||||||
|
"emailcontenttitle": emailContentTitle,
|
||||||
|
"emailcontent": emailContent,
|
||||||
|
};
|
||||||
|
|
||||||
|
var queryUrl = "/api/email";
|
||||||
|
|
||||||
|
var config = {
|
||||||
|
method: "post",
|
||||||
|
url: queryUrl,
|
||||||
|
data: mailData,
|
||||||
|
};
|
||||||
|
|
||||||
|
return axios(config)
|
||||||
|
.then((res) => {
|
||||||
|
//console.log("posted ", res.data);
|
||||||
|
return res.data;
|
||||||
|
})
|
||||||
|
.catch((error) => {
|
||||||
|
console.log("this serror", error);
|
||||||
|
});
|
||||||
|
};
|
||||||
|
|||||||
@@ -246,13 +246,13 @@ let Login = (props) => {
|
|||||||
</button>
|
</button>
|
||||||
)}
|
)}
|
||||||
{session && (
|
{session && (
|
||||||
<button
|
// <button
|
||||||
className="govuk-button"
|
// className="govuk-button"
|
||||||
type="button"
|
// type="button"
|
||||||
onClick={() => signOut()}
|
// onClick={() => signOut()}
|
||||||
>
|
// >
|
||||||
Magic Link Sign Out
|
// Magic Link Sign Out
|
||||||
</button>
|
// </button>
|
||||||
)}
|
)}
|
||||||
</div>
|
</div>
|
||||||
<form onSubmit={handleSubmit(onHandleSubmit)}>
|
<form onSubmit={handleSubmit(onHandleSubmit)}>
|
||||||
|
|||||||
@@ -5,6 +5,8 @@ import { useRouter } from "next/router";
|
|||||||
import { destroyCookie } from "nookies";
|
import { destroyCookie } from "nookies";
|
||||||
import TimeOut from "../components/timeout";
|
import TimeOut from "../components/timeout";
|
||||||
import AwaitingSubmission from "./myportal/awaitingsubmission";
|
import AwaitingSubmission from "./myportal/awaitingsubmission";
|
||||||
|
import AwaitingSubmissionFromBlob from "./myportal/awaitingsubmissionfromblob";
|
||||||
|
|
||||||
import Dns from "./myportal/dns";
|
import Dns from "./myportal/dns";
|
||||||
import MakeNewAppeal from "./myportal/makenewappeal";
|
import MakeNewAppeal from "./myportal/makenewappeal";
|
||||||
import MyCases from "./myportal/mycases";
|
import MyCases from "./myportal/mycases";
|
||||||
@@ -101,6 +103,16 @@ const MyPortal = (props) => {
|
|||||||
}
|
}
|
||||||
/>
|
/>
|
||||||
)}
|
)}
|
||||||
|
{props.awaitingSubmission
|
||||||
|
.awaitingSubmissionFromBlob["@odata.count"] >
|
||||||
|
0 && (
|
||||||
|
<AwaitingSubmissionFromBlob
|
||||||
|
awaitingSubmissionFromBlob={
|
||||||
|
props.awaitingSubmission
|
||||||
|
.awaitingSubmissionFromBlob
|
||||||
|
}
|
||||||
|
/>
|
||||||
|
)}
|
||||||
{props.myCases.myCases["@odata.count"] > 0 && (
|
{props.myCases.myCases["@odata.count"] > 0 && (
|
||||||
<MyCases myCases={props.myCases} />
|
<MyCases myCases={props.myCases} />
|
||||||
)}
|
)}
|
||||||
|
|||||||
@@ -0,0 +1,105 @@
|
|||||||
|
import Link from "next/link";
|
||||||
|
import { useRouter } from "next/router";
|
||||||
|
import useTranslation from "next-translate/useTranslation";
|
||||||
|
import TopThree from "./topthree";
|
||||||
|
import { connect } from "react-redux";
|
||||||
|
import { setCurrentView } from "../../store/currentView/action";
|
||||||
|
|
||||||
|
const AwaitingSubmissionFromBlob = (props) => {
|
||||||
|
let { t } = useTranslation();
|
||||||
|
|
||||||
|
const router = useRouter();
|
||||||
|
const { locale } = router;
|
||||||
|
const { setCurrentView } = props;
|
||||||
|
|
||||||
|
let topthreeRow = [];
|
||||||
|
let showTopThreeArr = props.awaitingSubmissionFromBlob.value;
|
||||||
|
|
||||||
|
let topThreeOnlyArr = showTopThreeArr;
|
||||||
|
Object.keys(topThreeOnlyArr).map((key, index) => {
|
||||||
|
topthreeRow.push(
|
||||||
|
<div className="cardModuleItem" key={index}>
|
||||||
|
<div className="cardModuleDetails">
|
||||||
|
<div className="cardModuleReference">
|
||||||
|
<b>{t("myportal:case-reference")}:</b>
|
||||||
|
{showTopThreeArr[index].pinswg_name}
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div className="carModuleAddress">
|
||||||
|
<b>{t("myportal:case-address")}:</b>{" "}
|
||||||
|
{_.isEmpty(showTopThreeArr)
|
||||||
|
? t("myportal:case-address-not-entered")
|
||||||
|
: _.isEmpty(showTopThreeArr[index])
|
||||||
|
? t("myportal:case-address-not-entered")
|
||||||
|
: _.isEmpty(showTopThreeArr[index])
|
||||||
|
? t("myportal:case-address-not-entered")
|
||||||
|
: _.isEmpty(
|
||||||
|
showTopThreeArr[index].pinswg_siteaddressline1
|
||||||
|
)
|
||||||
|
? t("myportal:case-address-not-entered")
|
||||||
|
: showTopThreeArr[index].pinswg_siteaddressline1 +
|
||||||
|
(!_.isEmpty(
|
||||||
|
showTopThreeArr[index].pinswg_siteaddressline2
|
||||||
|
)
|
||||||
|
? ", " +
|
||||||
|
showTopThreeArr[index]
|
||||||
|
.pinswg_siteaddressline2
|
||||||
|
: "") +
|
||||||
|
(!_.isEmpty(
|
||||||
|
showTopThreeArr[index].pinswg_siteaddresstown
|
||||||
|
)
|
||||||
|
? ", " +
|
||||||
|
showTopThreeArr[index]
|
||||||
|
.pinswg_siteaddresstown
|
||||||
|
: "")}
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
);
|
||||||
|
});
|
||||||
|
|
||||||
|
return (
|
||||||
|
<div className="card" id="casescomment-card">
|
||||||
|
<div className="card-body">
|
||||||
|
<h3 className="heading-small card-heading">
|
||||||
|
{t("myportal:awatitingsubmission-card-title")}
|
||||||
|
</h3>
|
||||||
|
<div className="cardModuleContainer">
|
||||||
|
{topthreeRow}
|
||||||
|
{/* <TopThree
|
||||||
|
showTopThree={props.awaitingSubmissionFromBlob}
|
||||||
|
showDetails={props.awaitingSubmissionFromBlob}
|
||||||
|
topThreeType={"awaitingSubmissionFromBlob"}
|
||||||
|
/> */}
|
||||||
|
</div>
|
||||||
|
{props.awaitingSubmissionFromBlob["@odata.count"] > 3 && (
|
||||||
|
<div className="cardVieAll">
|
||||||
|
<Link href="/myportal/viewall">
|
||||||
|
<a
|
||||||
|
className="govuk-link--no-underline"
|
||||||
|
onClick={() => {
|
||||||
|
setCurrentView({
|
||||||
|
"viewName": "Awaiting Submission",
|
||||||
|
"viewKey": "awaitingSubmission",
|
||||||
|
});
|
||||||
|
}}
|
||||||
|
>
|
||||||
|
{t("myportal:viewall-link")}
|
||||||
|
</a>
|
||||||
|
</Link>
|
||||||
|
</div>
|
||||||
|
)}
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
);
|
||||||
|
};
|
||||||
|
|
||||||
|
const mapDispatchToProps = (dispatch) => {
|
||||||
|
return {
|
||||||
|
setCurrentView: (currentView) => {
|
||||||
|
dispatch(setCurrentView(currentView));
|
||||||
|
},
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
export default connect(null, mapDispatchToProps)(AwaitingSubmissionFromBlob);
|
||||||
@@ -142,7 +142,8 @@ const TopThree = (props) => {
|
|||||||
<b>{t("myportal:case-reference")}:</b>
|
<b>{t("myportal:case-reference")}:</b>
|
||||||
<Link
|
<Link
|
||||||
href={
|
href={
|
||||||
topThreeType == "awaitingSubmission"
|
topThreeType == "awaitingSubmission" ||
|
||||||
|
topThreeType == "awaitingSubmissionFromBlob"
|
||||||
? router.locale == "cy"
|
? router.locale == "cy"
|
||||||
? "/fymhorth/parhauigyflwyno"
|
? "/fymhorth/parhauigyflwyno"
|
||||||
: "/myportal" +
|
: "/myportal" +
|
||||||
|
|||||||
@@ -15,7 +15,7 @@ import {
|
|||||||
setNewAppealProgress,
|
setNewAppealProgress,
|
||||||
} from "../../store/appealType/action";
|
} from "../../store/appealType/action";
|
||||||
import { getFormCollectionByID, getProgressObj } from "../utils";
|
import { getFormCollectionByID, getProgressObj } from "../utils";
|
||||||
import { updateCase, patchCase, uploadFiles } from "../../actions";
|
import { updateCase, patchCase, uploadFiles, sendEmail } from "../../actions";
|
||||||
|
|
||||||
import { FieldsTranslations } from "../elements";
|
import { FieldsTranslations } from "../elements";
|
||||||
import jsonpath from "jsonpath";
|
import jsonpath from "jsonpath";
|
||||||
@@ -134,7 +134,7 @@ let BuildSection = (props) => {
|
|||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
const updateCaseProgress = (values) => {
|
const updateCaseProgress = (values, sendSavedEmail) => {
|
||||||
let incidentId = props.appealType.caseReference.incidentid;
|
let incidentId = props.appealType.caseReference.incidentid;
|
||||||
let updateBody = values || {};
|
let updateBody = values || {};
|
||||||
|
|
||||||
@@ -183,8 +183,28 @@ let BuildSection = (props) => {
|
|||||||
primaryAttribute,
|
primaryAttribute,
|
||||||
props.appealType.caseReference.ticketnumber
|
props.appealType.caseReference.ticketnumber
|
||||||
);
|
);
|
||||||
//console.log("patching////////");
|
|
||||||
//patchCase(incidentId);
|
sendSavedEmail == true &&
|
||||||
|
sendEmail(
|
||||||
|
props.props.accountDetails.loggedinUserEmail,
|
||||||
|
"Saved progress for appeal " +
|
||||||
|
props.appealType.caseReference.ticketnumber,
|
||||||
|
"Your saved appeal " +
|
||||||
|
props.appealType.caseReference.ticketnumber,
|
||||||
|
"You can resume your application at a later date <a href='" +
|
||||||
|
props.props.url +
|
||||||
|
"/myportal/" +
|
||||||
|
appTypeCollection.UrlName +
|
||||||
|
"?lpa=" +
|
||||||
|
props.appealType.appealLPA +
|
||||||
|
"&apt=" +
|
||||||
|
appTypeCollection.appealTypeID +
|
||||||
|
"&casereference=" +
|
||||||
|
props.appealType.caseReference.ticketnumber +
|
||||||
|
"&inid=" +
|
||||||
|
props.appealType.caseReference.incidentid +
|
||||||
|
"'> from here </a>"
|
||||||
|
);
|
||||||
};
|
};
|
||||||
|
|
||||||
const onHandleSubmit = (values) => {
|
const onHandleSubmit = (values) => {
|
||||||
@@ -193,7 +213,7 @@ let BuildSection = (props) => {
|
|||||||
|
|
||||||
delete valuesObj["_pinswg_appellant_value"];
|
delete valuesObj["_pinswg_appellant_value"];
|
||||||
console.log("has errors:", props.invalid);
|
console.log("has errors:", props.invalid);
|
||||||
props.invalid == false && updateCaseProgress(valuesObj);
|
props.invalid == false && updateCaseProgress(valuesObj, false);
|
||||||
|
|
||||||
setCurrentSection(currentSection + 1);
|
setCurrentSection(currentSection + 1);
|
||||||
};
|
};
|
||||||
@@ -309,7 +329,7 @@ let BuildSection = (props) => {
|
|||||||
delete valuesObj["_pinswg_appellant_value"];
|
delete valuesObj["_pinswg_appellant_value"];
|
||||||
|
|
||||||
//console.log("on save:", valuesObj);
|
//console.log("on save:", valuesObj);
|
||||||
updateCaseProgress(valuesObj);
|
updateCaseProgress(valuesObj, false);
|
||||||
}}
|
}}
|
||||||
>
|
>
|
||||||
{t("common:continue-button")}
|
{t("common:continue-button")}
|
||||||
@@ -373,7 +393,7 @@ let BuildSection = (props) => {
|
|||||||
delete valuesObj["_pinswg_appellant_value"];
|
delete valuesObj["_pinswg_appellant_value"];
|
||||||
|
|
||||||
console.log("on save:", valuesObj);
|
console.log("on save:", valuesObj);
|
||||||
updateCaseProgress(valuesObj);
|
updateCaseProgress(valuesObj, true);
|
||||||
router.replace(
|
router.replace(
|
||||||
router.locale != "en"
|
router.locale != "en"
|
||||||
? router.locale + "/myportal"
|
? router.locale + "/myportal"
|
||||||
|
|||||||
@@ -6,7 +6,7 @@ import { useEffect } from "react";
|
|||||||
import { connect } from "react-redux";
|
import { connect } from "react-redux";
|
||||||
import { formValueSelector } from "redux-form";
|
import { formValueSelector } from "redux-form";
|
||||||
import xpath from "xpath";
|
import xpath from "xpath";
|
||||||
import { updateCase, patchCase } from "../../actions";
|
import { updateCase, patchCase, sendEmail } from "../../actions";
|
||||||
import data from "../../data/collections.json";
|
import data from "../../data/collections.json";
|
||||||
import { setCurrentSection } from "../../store/appealType/action";
|
import { setCurrentSection } from "../../store/appealType/action";
|
||||||
import { getFormCollectionByID } from "../utils";
|
import { getFormCollectionByID } from "../utils";
|
||||||
@@ -49,6 +49,15 @@ let CompleteAppeal = (props) => {
|
|||||||
primaryAttribute,
|
primaryAttribute,
|
||||||
props.appealType.caseReference.ticketnumber
|
props.appealType.caseReference.ticketnumber
|
||||||
);
|
);
|
||||||
|
|
||||||
|
sendEmail(
|
||||||
|
props.props.accountDetails.loggedinUserEmail,
|
||||||
|
"Saved progress for appeal " +
|
||||||
|
props.appealType.caseReference.ticketnumber,
|
||||||
|
"Your saved appeal " + props.appealType.caseReference.ticketnumber,
|
||||||
|
"You have now completed your appeal."
|
||||||
|
);
|
||||||
|
|
||||||
console.log("patching////////");
|
console.log("patching////////");
|
||||||
patchCase(incidentId);
|
patchCase(incidentId);
|
||||||
}, [
|
}, [
|
||||||
|
|||||||
@@ -454,7 +454,8 @@ let CreateCase = (props) => {
|
|||||||
appTypeCollection.appealTypeID,
|
appTypeCollection.appealTypeID,
|
||||||
values.lpaTypes,
|
values.lpaTypes,
|
||||||
props.loggedInUser,
|
props.loggedInUser,
|
||||||
values
|
values,
|
||||||
|
props.containerID
|
||||||
)
|
)
|
||||||
.then((data) => {
|
.then((data) => {
|
||||||
router.replace(
|
router.replace(
|
||||||
|
|||||||
+2
-2
@@ -49,7 +49,7 @@
|
|||||||
"next-redux-wrapper": "^7.0.5",
|
"next-redux-wrapper": "^7.0.5",
|
||||||
"next-translate": "^1.2.0",
|
"next-translate": "^1.2.0",
|
||||||
"nextjs-basic-auth-middleware": "^0.2.1",
|
"nextjs-basic-auth-middleware": "^0.2.1",
|
||||||
"nodemailer": "^6.7.3",
|
"nodemailer": "^6.7.8",
|
||||||
"nookies": "^2.5.2",
|
"nookies": "^2.5.2",
|
||||||
"ospoint": "^0.2.1",
|
"ospoint": "^0.2.1",
|
||||||
"path": "^0.12.7",
|
"path": "^0.12.7",
|
||||||
@@ -86,4 +86,4 @@
|
|||||||
"prettier": "2.5.1",
|
"prettier": "2.5.1",
|
||||||
"prisma": "^3.12.0"
|
"prisma": "^3.12.0"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -0,0 +1,81 @@
|
|||||||
|
import nodemailer from "nodemailer";
|
||||||
|
|
||||||
|
export default function handler(req, res) {
|
||||||
|
const { email, subject, emailcontenttitle, emailcontent } = req.body;
|
||||||
|
console.log(email);
|
||||||
|
//console.log(process.env);
|
||||||
|
|
||||||
|
const client = nodemailer.createTransport({
|
||||||
|
auth: {
|
||||||
|
user: process.env.EMAIL_SERVER_USER,
|
||||||
|
pass: process.env.EMAIL_SERVER_PASSWORD,
|
||||||
|
},
|
||||||
|
host: process.env.EMAIL_SERVER_HOST,
|
||||||
|
port: process.env.EMAIL_SERVER_PORT,
|
||||||
|
secure: true,
|
||||||
|
});
|
||||||
|
|
||||||
|
//console.log(client);
|
||||||
|
|
||||||
|
// Some simple styling options
|
||||||
|
const backgroundColor = "#ffffff";
|
||||||
|
const textColor = "#444444";
|
||||||
|
const mainBackgroundColor = "#ffffff";
|
||||||
|
const buttonBackgroundColor = "#aa1111";
|
||||||
|
const buttonBorderColor = "#aa1111";
|
||||||
|
const buttonTextColor = "#ffffff";
|
||||||
|
const headerBackgroundColor = "#000000";
|
||||||
|
const url = process.env.API_ROOT;
|
||||||
|
|
||||||
|
let emailBodyContent = ` <body style="background: ${backgroundColor};">
|
||||||
|
<table width="100%" border="0" cellspacing="0" cellpadding="0">
|
||||||
|
<tr>
|
||||||
|
<td align="center" style="padding: 10px 0px 20px 0px; font-size: 22px; font-family: Helvetica, Arial, sans-serif; color: #fff;background-color: ${headerBackgroundColor};border-bottom: 10px solid #ffd530;>
|
||||||
|
|
||||||
|
<strong>PEDW - Planning Casework</strong>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
<table width="100%" border="0" cellspacing="20" cellpadding="0" style="background: ${mainBackgroundColor}; max-width: 600px; margin: auto; border-radius: 10px;">
|
||||||
|
<tr>
|
||||||
|
<td align="left" style="padding: 10px 0px 0px 0px; font-size: 18px; font-family: Helvetica, Arial, sans-serif; color: ${textColor};">
|
||||||
|
${emailcontenttitle}
|
||||||
|
</td>
|
||||||
|
<img src ="${url}/assets/images/planning-casework-en.svg"/>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td align="left" style="padding: 10px 0px 0px 0px; font-size: 18px; font-family: Helvetica, Arial, sans-serif; color: ${textColor};">
|
||||||
|
${emailcontent}
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td align="center" style="padding: 20px 0;">
|
||||||
|
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td align="center" style="padding: 0px 0px 10px 0px; font-size: 16px; line-height: 22px; font-family: Helvetica, Arial, sans-serif; color: ${textColor};">
|
||||||
|
If you did not request this email you can safely ignore it.
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
</body>`;
|
||||||
|
|
||||||
|
const mailData = {
|
||||||
|
from: "no-reply@rdbdigital.com",
|
||||||
|
to: email,
|
||||||
|
subject: subject,
|
||||||
|
text: emailBodyContent,
|
||||||
|
html: emailBodyContent,
|
||||||
|
};
|
||||||
|
|
||||||
|
client.sendMail(mailData, (err, data) => {
|
||||||
|
if (err) {
|
||||||
|
console.log(err);
|
||||||
|
res.status(400);
|
||||||
|
} else {
|
||||||
|
console.log("mail sent");
|
||||||
|
res.status(200).json(data);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
@@ -2,7 +2,7 @@ import axios from "axios";
|
|||||||
import CryptoJS from "crypto-js";
|
import CryptoJS from "crypto-js";
|
||||||
import _ from "lodash";
|
import _ from "lodash";
|
||||||
import { getToken, azureHeadersPaged, consoleLogger } from "../../../actions";
|
import { getToken, azureHeadersPaged, consoleLogger } from "../../../actions";
|
||||||
|
import { getCaseBlob } from "../../../actions/azurestorage";
|
||||||
const WORDKEY = process.env.HASHKEY;
|
const WORDKEY = process.env.HASHKEY;
|
||||||
|
|
||||||
const WEBAPI_URL =
|
const WEBAPI_URL =
|
||||||
@@ -25,6 +25,7 @@ export default async function ApiProxy(req, res) {
|
|||||||
var createCaseBody = req.body;
|
var createCaseBody = req.body;
|
||||||
var contactid = req.query.contactid;
|
var contactid = req.query.contactid;
|
||||||
var appealTypeId = req.query.appealTypeId;
|
var appealTypeId = req.query.appealTypeId;
|
||||||
|
var containerName = req.query.containername;
|
||||||
var lpaID = req.query.lpaID;
|
var lpaID = req.query.lpaID;
|
||||||
var queryUrl = "incidents";
|
var queryUrl = "incidents";
|
||||||
var token = await getToken();
|
var token = await getToken();
|
||||||
@@ -42,7 +43,7 @@ export default async function ApiProxy(req, res) {
|
|||||||
delete newData.lpaTypes;
|
delete newData.lpaTypes;
|
||||||
delete newData.appealTypes;
|
delete newData.appealTypes;
|
||||||
|
|
||||||
console.log("/////Create Case:", newData);
|
console.log("/////Create Case:\n", newData, "\n//////////////");
|
||||||
|
|
||||||
var config = {
|
var config = {
|
||||||
method: "post",
|
method: "post",
|
||||||
@@ -55,18 +56,18 @@ export default async function ApiProxy(req, res) {
|
|||||||
"Authorization": "Bearer " + token.access_token,
|
"Authorization": "Bearer " + token.access_token,
|
||||||
"Content-Type": "application/json",
|
"Content-Type": "application/json",
|
||||||
},
|
},
|
||||||
data: JSON.stringify(data),
|
data: JSON.stringify(newData),
|
||||||
};
|
};
|
||||||
|
|
||||||
var apiResponse = _.isEmpty(req.query)
|
var apiResponse = _.isEmpty(req.query)
|
||||||
? res.status(400).json()
|
? res.status(400).json()
|
||||||
: axios(config)
|
: axios(config)
|
||||||
.then(({ data }) => {
|
.then(({ data }) => {
|
||||||
console.log(data);
|
getCaseBlob(containerName, data.ticketnumber, createCaseBody);
|
||||||
|
|
||||||
res.status(200).json(data);
|
res.status(200).json(data);
|
||||||
})
|
})
|
||||||
.catch((err) => {
|
.catch((err) => {
|
||||||
console.log(consoleLogger(err));
|
//console.log(consoleLogger(err));
|
||||||
res.status(400).json(err);
|
res.status(400).json(err);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|||||||
@@ -0,0 +1,45 @@
|
|||||||
|
import { hashAPIPath } from "../../../actions";
|
||||||
|
import { deleteBlob } from "../../../actions/azurestorage";
|
||||||
|
|
||||||
|
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 +
|
||||||
|
"&casefolderID=" +
|
||||||
|
casefolderID +
|
||||||
|
"&blobname=" +
|
||||||
|
blobName;
|
||||||
|
|
||||||
|
// console.log(hashAPIPath(checkquerypath), checkHash);
|
||||||
|
// console.log(hashAPIPath(checkquerypath) == "&hash=" + checkHash);
|
||||||
|
|
||||||
|
if (hashAPIPath(checkquerypath) == "&hash=" + checkHash) {
|
||||||
|
await deleteBlob(
|
||||||
|
containerName,
|
||||||
|
casefolderID + "/files/" + blobName
|
||||||
|
).then((data) => {
|
||||||
|
return res.status(200).json({ data: data });
|
||||||
|
});
|
||||||
|
} else {
|
||||||
|
return res.status(400).json();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
export const config = {
|
||||||
|
api: {
|
||||||
|
bodyParser: false,
|
||||||
|
},
|
||||||
|
};
|
||||||
|
|
||||||
|
export default ApiProxy;
|
||||||
@@ -0,0 +1,44 @@
|
|||||||
|
import {
|
||||||
|
downloadAllProgressFiles,
|
||||||
|
getAllProgressBlobs,
|
||||||
|
} from "../../../actions/azurestorage";
|
||||||
|
import _ from "lodash";
|
||||||
|
import nextConnect from "next-connect";
|
||||||
|
import middleware from "../middleware/middleware";
|
||||||
|
import { hashAPIPath } from "../../../actions";
|
||||||
|
|
||||||
|
const ApiProxy = nextConnect();
|
||||||
|
ApiProxy.use(middleware);
|
||||||
|
|
||||||
|
ApiProxy.get(async (req, res) => {
|
||||||
|
var containerName = req.query.container;
|
||||||
|
var checkHash = req.query.hash;
|
||||||
|
|
||||||
|
var checkquerypath =
|
||||||
|
"/api/file/getawaitingsubmissionfromblob?container=" + containerName;
|
||||||
|
|
||||||
|
// console.log(req.url);
|
||||||
|
// console.log(hashAPIPath(checkquerypath), checkHash);
|
||||||
|
// console.log(hashAPIPath(checkquerypath) == "&hash=" + checkHash);
|
||||||
|
|
||||||
|
if (hashAPIPath(checkquerypath) == "&hash=" + checkHash) {
|
||||||
|
const blobObj = await getAllProgressBlobs(containerName)
|
||||||
|
.then((data) => {
|
||||||
|
//console.log(data);
|
||||||
|
return downloadAllProgressFiles(containerName, data);
|
||||||
|
})
|
||||||
|
.then((data) => {
|
||||||
|
return res.status(200).json(data);
|
||||||
|
});
|
||||||
|
} else {
|
||||||
|
return res.status(400).json();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
export const config = {
|
||||||
|
api: {
|
||||||
|
bodyParser: false,
|
||||||
|
},
|
||||||
|
};
|
||||||
|
|
||||||
|
export default ApiProxy;
|
||||||
@@ -2,7 +2,7 @@ import {
|
|||||||
downloadProgressFile,
|
downloadProgressFile,
|
||||||
getProgressBlobs,
|
getProgressBlobs,
|
||||||
} from "../../../actions/azurestorage";
|
} from "../../../actions/azurestorage";
|
||||||
|
import _ from "lodash";
|
||||||
import nextConnect from "next-connect";
|
import nextConnect from "next-connect";
|
||||||
import middleware from "../middleware/middleware";
|
import middleware from "../middleware/middleware";
|
||||||
|
|
||||||
@@ -25,9 +25,9 @@ ApiProxy.get(async (req, res) => {
|
|||||||
|
|
||||||
//if (hashAPIPath(checkquerypath) == "&hash=" + checkHash) {
|
//if (hashAPIPath(checkquerypath) == "&hash=" + checkHash) {
|
||||||
const blobObj = await getProgressBlobs(containerName, casefolderID)
|
const blobObj = await getProgressBlobs(containerName, casefolderID)
|
||||||
.then((data) =>
|
.then((data) => {
|
||||||
downloadProgressFile(containerName, data.path, casefolderID)
|
return downloadProgressFile(containerName, data.path, casefolderID);
|
||||||
)
|
})
|
||||||
.then((data) => {
|
.then((data) => {
|
||||||
return res.status(200).json(data);
|
return res.status(200).json(data);
|
||||||
});
|
});
|
||||||
|
|||||||
@@ -32,11 +32,7 @@ ApiProxy.post(async (req, res) => {
|
|||||||
// if (hashAPIPath(checkquerypath) == "?hash=" + checkHash) {
|
// if (hashAPIPath(checkquerypath) == "?hash=" + checkHash) {
|
||||||
//createContainer(containerID).then((containerName) => {
|
//createContainer(containerID).then((containerName) => {
|
||||||
|
|
||||||
console.log(
|
console.log("does this get folder name:", containerID, casefolderID);
|
||||||
"does this et folder name:",
|
|
||||||
appealData.pinswg_name,
|
|
||||||
casefolderID
|
|
||||||
);
|
|
||||||
createBlob(appealData, containerID, casefolderID).then((data) => {
|
createBlob(appealData, containerID, casefolderID).then((data) => {
|
||||||
Object.keys(req.files).length > 0 &&
|
Object.keys(req.files).length > 0 &&
|
||||||
uploadFile(req.files, containerID, casefolderID);
|
uploadFile(req.files, containerID, casefolderID);
|
||||||
|
|||||||
@@ -32,7 +32,7 @@ const SignIn = (props) => {
|
|||||||
<div className="govuk-grid-row">
|
<div className="govuk-grid-row">
|
||||||
<div className="govuk-grid-column-two-thirds govuk-body">
|
<div className="govuk-grid-column-two-thirds govuk-body">
|
||||||
A link has been sent to your email so you can
|
A link has been sent to your email so you can
|
||||||
continue
|
continue. Please close this window.
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div className="govuk-grid-row">
|
<div className="govuk-grid-row">
|
||||||
|
|||||||
+1
-1
@@ -132,7 +132,7 @@ const Home = (props) => {
|
|||||||
<CookieBanner />
|
<CookieBanner />
|
||||||
<Header courseName="Appeals Casework Portal" />
|
<Header courseName="Appeals Casework Portal" />
|
||||||
<div className="govuk-width-container">
|
<div className="govuk-width-container">
|
||||||
{hasGGCode ? (
|
{hasLoginCode ? (
|
||||||
<>
|
<>
|
||||||
<h1>
|
<h1>
|
||||||
{ggLocale == "cy"
|
{ggLocale == "cy"
|
||||||
|
|||||||
@@ -7,7 +7,7 @@ import { useEffect } from "react";
|
|||||||
import { connect } from "react-redux";
|
import { connect } from "react-redux";
|
||||||
import xpath from "xpath";
|
import xpath from "xpath";
|
||||||
import {
|
import {
|
||||||
getAppealsTypes,
|
getAppealsTypesForNewAppeal,
|
||||||
getMandatoryFields,
|
getMandatoryFields,
|
||||||
getPickLists,
|
getPickLists,
|
||||||
getPartSavedAppeal,
|
getPartSavedAppeal,
|
||||||
@@ -26,6 +26,7 @@ import TimeOut from "../../components/timeout";
|
|||||||
|
|
||||||
import {
|
import {
|
||||||
setLoggedInUserId,
|
setLoggedInUserId,
|
||||||
|
setLoggedInUserEmail,
|
||||||
setContainerID,
|
setContainerID,
|
||||||
} from "../../store/accountDetails/action";
|
} from "../../store/accountDetails/action";
|
||||||
import {
|
import {
|
||||||
@@ -217,32 +218,32 @@ export const getServerSideProps = wrapper.getServerSideProps(
|
|||||||
const { query, req, res } = ctx;
|
const { query, req, res } = ctx;
|
||||||
const { cookies } = req;
|
const { cookies } = req;
|
||||||
|
|
||||||
console.log(cookies);
|
//console.log(cookies);
|
||||||
console.log("the query", query.appealtypes);
|
//console.log("the query", query.appealtypes);
|
||||||
let loggedInUser = cookies.pinsUser;
|
let loggedInUser = cookies.pinsUser;
|
||||||
|
|
||||||
let thisSession = await getSession(ctx);
|
let thisSession = await getSession(ctx);
|
||||||
console.log("nextAuth Session:", thisSession);
|
//console.log("nextAuth Session:", thisSession);
|
||||||
|
|
||||||
let loggedInUserIdent = thisSession.user.id;
|
let loggedInUserIdent = thisSession.user.id;
|
||||||
|
let loggedInUserEmail = thisSession.user.email;
|
||||||
|
|
||||||
console.log("logged ident:", loggedInUserIdent);
|
//console.log("logged ident:", loggedInUserIdent);
|
||||||
|
|
||||||
const [
|
const [appealTypeData, mandatoryFieldsData, pickListData, blobList] =
|
||||||
appealTypeData,
|
await Promise.all([
|
||||||
mandatoryFieldsData,
|
await getAppealsTypesForNewAppeal(),
|
||||||
pickListData,
|
await getMandatoryFields(query.appealtypes),
|
||||||
blobList,
|
await getPickLists(query.appealtypes),
|
||||||
blobProgress,
|
await getFilesFromBlob(loggedInUserIdent, query.casereference),
|
||||||
] = await Promise.all([
|
]);
|
||||||
await getAppealsTypes(),
|
|
||||||
await getMandatoryFields(query.appealtypes),
|
|
||||||
await getPickLists(query.appealtypes),
|
|
||||||
await getFilesFromBlob(loggedInUserIdent, query.casereference),
|
|
||||||
await getProgressFromBlob(loggedInUserIdent, query.casereference),
|
|
||||||
]);
|
|
||||||
|
|
||||||
console.log("has blobprogess:", loggedInUserIdent, query.casereference);
|
const blobProgress = await getProgressFromBlob(
|
||||||
|
loggedInUserIdent,
|
||||||
|
query.casereference
|
||||||
|
);
|
||||||
|
|
||||||
|
console.log("/////////\nappela tupe data:", appealTypeData);
|
||||||
|
|
||||||
//
|
//
|
||||||
// Removed to make progress from Blob not CRM
|
// Removed to make progress from Blob not CRM
|
||||||
@@ -288,6 +289,7 @@ export const getServerSideProps = wrapper.getServerSideProps(
|
|||||||
const providerConfig = await getProviderConfig();
|
const providerConfig = await getProviderConfig();
|
||||||
store.dispatch(getGovGatewayConfig(providerConfig));
|
store.dispatch(getGovGatewayConfig(providerConfig));
|
||||||
store.dispatch(setLoggedInUserId(loggedInUser));
|
store.dispatch(setLoggedInUserId(loggedInUser));
|
||||||
|
store.dispatch(setLoggedInUserEmail(loggedInUserEmail));
|
||||||
store.dispatch(setAppealLPA(query.lpa));
|
store.dispatch(setAppealLPA(query.lpa));
|
||||||
store.dispatch(setAppealTypeID(query.apt));
|
store.dispatch(setAppealTypeID(query.apt));
|
||||||
store.dispatch(setCaseReference(caseReference));
|
store.dispatch(setCaseReference(caseReference));
|
||||||
@@ -295,6 +297,10 @@ export const getServerSideProps = wrapper.getServerSideProps(
|
|||||||
store.dispatch(setAppealType(appealTypeData));
|
store.dispatch(setAppealType(appealTypeData));
|
||||||
store.dispatch(setFilesForAppeal(blobList));
|
store.dispatch(setFilesForAppeal(blobList));
|
||||||
store.dispatch(setContainerID(thisSession.user.id));
|
store.dispatch(setContainerID(thisSession.user.id));
|
||||||
|
|
||||||
|
return {
|
||||||
|
props: { url: process.env.API_ROOT },
|
||||||
|
};
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|||||||
@@ -5,6 +5,7 @@ import Head from "next/head";
|
|||||||
import { useRouter } from "next/router";
|
import { useRouter } from "next/router";
|
||||||
import { connect } from "react-redux";
|
import { connect } from "react-redux";
|
||||||
import {
|
import {
|
||||||
|
getAwaitingSubmissionFromBlob,
|
||||||
getAwaitingSubmission,
|
getAwaitingSubmission,
|
||||||
getMyCases,
|
getMyCases,
|
||||||
getMyRepresentations,
|
getMyRepresentations,
|
||||||
@@ -27,6 +28,7 @@ import {
|
|||||||
} from "../../store/accountDetails/action";
|
} from "../../store/accountDetails/action";
|
||||||
import {
|
import {
|
||||||
setAwaitingSubmission,
|
setAwaitingSubmission,
|
||||||
|
setAwaitingSubmissionFromBlob,
|
||||||
setAwaitingSubmissionDetails,
|
setAwaitingSubmissionDetails,
|
||||||
} from "../../store/awaitingSubmission/action";
|
} from "../../store/awaitingSubmission/action";
|
||||||
import { getGovGatewayConfig } from "../../store/govgateway/action";
|
import { getGovGatewayConfig } from "../../store/govgateway/action";
|
||||||
@@ -185,12 +187,14 @@ export const getServerSideProps = wrapper.getServerSideProps(
|
|||||||
myRepresentations,
|
myRepresentations,
|
||||||
watchedCases,
|
watchedCases,
|
||||||
awaitingSubmission,
|
awaitingSubmission,
|
||||||
|
awaitingSubmissionFromBlob,
|
||||||
] = await Promise.all([
|
] = await Promise.all([
|
||||||
await getPersonalAccount(loggedInUser),
|
await getPersonalAccount(loggedInUser),
|
||||||
await getMyCases(loggedInUser),
|
await getMyCases(loggedInUser),
|
||||||
await getMyRepresentations(loggedInUser),
|
await getMyRepresentations(loggedInUser),
|
||||||
await getWatchedCases(loggedInUser),
|
await getWatchedCases(loggedInUser),
|
||||||
await getAwaitingSubmission(loggedInUser),
|
await getAwaitingSubmission(loggedInUser),
|
||||||
|
await getAwaitingSubmissionFromBlob(thisSession.user.id),
|
||||||
]);
|
]);
|
||||||
|
|
||||||
if (_.has(accountDetails, "errorCode") != false) {
|
if (_.has(accountDetails, "errorCode") != false) {
|
||||||
@@ -224,6 +228,10 @@ export const getServerSideProps = wrapper.getServerSideProps(
|
|||||||
store.dispatch(setWatchedCases(watchedCases));
|
store.dispatch(setWatchedCases(watchedCases));
|
||||||
store.dispatch(setWatchedCasesDetails(watchedCasesDetails));
|
store.dispatch(setWatchedCasesDetails(watchedCasesDetails));
|
||||||
store.dispatch(setAwaitingSubmission(awaitingSubmission));
|
store.dispatch(setAwaitingSubmission(awaitingSubmission));
|
||||||
|
store.dispatch(
|
||||||
|
setAwaitingSubmissionFromBlob(awaitingSubmissionFromBlob)
|
||||||
|
);
|
||||||
|
|
||||||
store.dispatch(
|
store.dispatch(
|
||||||
setAwaitingSubmissionDetails(awaitingSubmissionDetails)
|
setAwaitingSubmissionDetails(awaitingSubmissionDetails)
|
||||||
);
|
);
|
||||||
|
|||||||
@@ -26,6 +26,7 @@ import TimeOut from "../../components/timeout";
|
|||||||
|
|
||||||
import {
|
import {
|
||||||
setLoggedInUserId,
|
setLoggedInUserId,
|
||||||
|
setLoggedInUserEmail,
|
||||||
setContainerID,
|
setContainerID,
|
||||||
} from "../../store/accountDetails/action";
|
} from "../../store/accountDetails/action";
|
||||||
import {
|
import {
|
||||||
@@ -226,8 +227,9 @@ export const getServerSideProps = wrapper.getServerSideProps(
|
|||||||
console.log("nextAuth Session:", thisSession);
|
console.log("nextAuth Session:", thisSession);
|
||||||
|
|
||||||
let loggedInUserIdent = thisSession.user.id;
|
let loggedInUserIdent = thisSession.user.id;
|
||||||
|
let loggedInUserEmail = thisSession.user.email;
|
||||||
|
|
||||||
console.log("logged ident:", loggedInUserIdent);
|
console.log("logged ident:", loggedInUserIdent, loggedInUserEmail);
|
||||||
|
|
||||||
const [
|
const [
|
||||||
caseReferenceData,
|
caseReferenceData,
|
||||||
@@ -235,17 +237,20 @@ export const getServerSideProps = wrapper.getServerSideProps(
|
|||||||
mandatoryFieldsData,
|
mandatoryFieldsData,
|
||||||
pickListData,
|
pickListData,
|
||||||
//blobList,
|
//blobList,
|
||||||
blobProgress,
|
|
||||||
] = await Promise.all([
|
] = await Promise.all([
|
||||||
await getCase(query.id),
|
await getCase(query.id),
|
||||||
await getAppealsTypes(),
|
await getAppealsTypes(),
|
||||||
await getMandatoryFields(query.appealtypes),
|
await getMandatoryFields(query.appealtypes),
|
||||||
await getPickLists(query.appealtypes),
|
await getPickLists(query.appealtypes),
|
||||||
await getProgressFromBlob(loggedInUserIdent, query.casereference),
|
|
||||||
|
|
||||||
//await getFilesFromBlob(query.casereference),
|
//await getFilesFromBlob(query.casereference),
|
||||||
]);
|
]);
|
||||||
|
|
||||||
|
const blobProgress = await getProgressFromBlob(
|
||||||
|
loggedInUserIdent,
|
||||||
|
caseReferenceData.ticketnumber
|
||||||
|
);
|
||||||
|
|
||||||
console.log("anything here", loggedInUser, query.id, caseReferenceData);
|
console.log("anything here", loggedInUser, query.id, caseReferenceData);
|
||||||
|
|
||||||
let caseReference = caseReferenceData; //caseReferenceData.ticketnumber;
|
let caseReference = caseReferenceData; //caseReferenceData.ticketnumber;
|
||||||
@@ -265,6 +270,7 @@ export const getServerSideProps = wrapper.getServerSideProps(
|
|||||||
const providerConfig = await getProviderConfig();
|
const providerConfig = await getProviderConfig();
|
||||||
store.dispatch(getGovGatewayConfig(providerConfig));
|
store.dispatch(getGovGatewayConfig(providerConfig));
|
||||||
store.dispatch(setLoggedInUserId(loggedInUser));
|
store.dispatch(setLoggedInUserId(loggedInUser));
|
||||||
|
store.dispatch(setLoggedInUserEmail(loggedInUserEmail));
|
||||||
store.dispatch(setAppealLPA(query.lpa));
|
store.dispatch(setAppealLPA(query.lpa));
|
||||||
store.dispatch(setAppealTypeID(query.apt));
|
store.dispatch(setAppealTypeID(query.apt));
|
||||||
store.dispatch(setCaseReference(caseReference));
|
store.dispatch(setCaseReference(caseReference));
|
||||||
@@ -273,6 +279,10 @@ export const getServerSideProps = wrapper.getServerSideProps(
|
|||||||
store.dispatch(setContainerID(thisSession.user.id));
|
store.dispatch(setContainerID(thisSession.user.id));
|
||||||
|
|
||||||
//store.dispatch(setFilesForAppeal(blobList));
|
//store.dispatch(setFilesForAppeal(blobList));
|
||||||
|
|
||||||
|
return {
|
||||||
|
props: { url: process.env.API_ROOT },
|
||||||
|
};
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|||||||
@@ -3,13 +3,13 @@ export const AccountDetailsDataActionTypes = {
|
|||||||
GETACCOUNTDETAILSDATA: "GETACCOUNTDETAILSDATA",
|
GETACCOUNTDETAILSDATA: "GETACCOUNTDETAILSDATA",
|
||||||
SETACCOUNTDETAILSDATA: "SETACCOUNTDETAILSDATA",
|
SETACCOUNTDETAILSDATA: "SETACCOUNTDETAILSDATA",
|
||||||
SETLOGGEDINUSER: "SETLOGGEDINUSER",
|
SETLOGGEDINUSER: "SETLOGGEDINUSER",
|
||||||
|
SETLOGGEDINUSEREMAIL: "SETLOGGEDINUSEREMAIL",
|
||||||
SETACCOUNTCREATED: "SETACCOUNTCREATED",
|
SETACCOUNTCREATED: "SETACCOUNTCREATED",
|
||||||
USER_LOGOUT: "USER_LOGOUT",
|
USER_LOGOUT: "USER_LOGOUT",
|
||||||
SETCONTAINERID: "SETCONTAINERID",
|
SETCONTAINERID: "SETCONTAINERID",
|
||||||
};
|
};
|
||||||
|
|
||||||
export const setCookieConsent = (cookieObj) => (dispatch) => {
|
export const setCookieConsent = (cookieObj) => (dispatch) => {
|
||||||
console.log("wertyewrtyt", cookieObj);
|
|
||||||
return dispatch({
|
return dispatch({
|
||||||
type: AccountDetailsDataActionTypes.SETCOOKIECONSENT,
|
type: AccountDetailsDataActionTypes.SETCOOKIECONSENT,
|
||||||
cookieObj: cookieObj,
|
cookieObj: cookieObj,
|
||||||
@@ -36,6 +36,13 @@ export const setLoggedInUserId = (loggedinUserId) => (dispatch) => {
|
|||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
|
export const setLoggedInUserEmail = (loggedinUserEmail) => (dispatch) => {
|
||||||
|
return dispatch({
|
||||||
|
type: AccountDetailsDataActionTypes.SETLOGGEDINUSEREMAIL,
|
||||||
|
loggedinUserEmail: loggedinUserEmail,
|
||||||
|
});
|
||||||
|
};
|
||||||
|
|
||||||
export const setLogout = () => (dispatch) => {
|
export const setLogout = () => (dispatch) => {
|
||||||
return dispatch({
|
return dispatch({
|
||||||
type: "USER_LOGOUT",
|
type: "USER_LOGOUT",
|
||||||
|
|||||||
@@ -3,6 +3,7 @@ import { AccountDetailsDataActionTypes } from "./action";
|
|||||||
const AccountDetailsDataInitialState = {
|
const AccountDetailsDataInitialState = {
|
||||||
accountDetails: {},
|
accountDetails: {},
|
||||||
loggedinUserId: "",
|
loggedinUserId: "",
|
||||||
|
loggedinUserEmail: "",
|
||||||
accCr: false,
|
accCr: false,
|
||||||
cookieObj: "",
|
cookieObj: "",
|
||||||
containerID: "",
|
containerID: "",
|
||||||
@@ -23,6 +24,11 @@ export default function reducer(
|
|||||||
...state,
|
...state,
|
||||||
loggedinUserId: action.loggedinUserId,
|
loggedinUserId: action.loggedinUserId,
|
||||||
};
|
};
|
||||||
|
case AccountDetailsDataActionTypes.SETLOGGEDINUSEREMAIL:
|
||||||
|
return {
|
||||||
|
...state,
|
||||||
|
loggedinUserEmail: action.loggedinUserEmail,
|
||||||
|
};
|
||||||
case AccountDetailsDataActionTypes.SETACCOUNTCREATED:
|
case AccountDetailsDataActionTypes.SETACCOUNTCREATED:
|
||||||
return {
|
return {
|
||||||
...state,
|
...state,
|
||||||
|
|||||||
@@ -1,6 +1,7 @@
|
|||||||
export const awaitingSubmissionActionTypes = {
|
export const awaitingSubmissionActionTypes = {
|
||||||
GETAWAITINGSUBMISSION: "GETAWAITINGSUBMISSION",
|
GETAWAITINGSUBMISSION: "GETAWAITINGSUBMISSION",
|
||||||
SETAWAITINGSUBMISSION: "SETAWAITINGSUBMISSION",
|
SETAWAITINGSUBMISSION: "SETAWAITINGSUBMISSION",
|
||||||
|
SETAWAITINGSUBMISSIONFROMBLOB: "SETAWAITINGSUBMISSIONFROMBLOB",
|
||||||
SETAWAITINGSUBMISSIONDETAILS: "SETAWAITINGSUBMISSIONDETAILS",
|
SETAWAITINGSUBMISSIONDETAILS: "SETAWAITINGSUBMISSIONDETAILS",
|
||||||
UPDATEAWAITINGSUBMISSION: "UPDATEAWAITINGSUBMISSION",
|
UPDATEAWAITINGSUBMISSION: "UPDATEAWAITINGSUBMISSION",
|
||||||
};
|
};
|
||||||
@@ -18,6 +19,14 @@ export const setAwaitingSubmission = (awaitingSubmission) => (dispatch) => {
|
|||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
|
export const setAwaitingSubmissionFromBlob =
|
||||||
|
(awaitingSubmissionFromBlob) => (dispatch) => {
|
||||||
|
return dispatch({
|
||||||
|
type: awaitingSubmissionActionTypes.SETAWAITINGSUBMISSIONFROMBLOB,
|
||||||
|
awaitingSubmissionFromBlob: awaitingSubmissionFromBlob,
|
||||||
|
});
|
||||||
|
};
|
||||||
|
|
||||||
export const setAwaitingSubmissionDetails =
|
export const setAwaitingSubmissionDetails =
|
||||||
(awaitingSubmissionDetails) => (dispatch) => {
|
(awaitingSubmissionDetails) => (dispatch) => {
|
||||||
return dispatch({
|
return dispatch({
|
||||||
|
|||||||
@@ -3,6 +3,7 @@ import { awaitingSubmissionActionTypes } from "./action";
|
|||||||
const awaitingSubmissionInitialState = {
|
const awaitingSubmissionInitialState = {
|
||||||
awaitingSubmission: {},
|
awaitingSubmission: {},
|
||||||
awaitingSubmissionDetails: {},
|
awaitingSubmissionDetails: {},
|
||||||
|
awaitingSubmissionFromBlob: {},
|
||||||
};
|
};
|
||||||
|
|
||||||
export default function reducer(
|
export default function reducer(
|
||||||
@@ -15,6 +16,11 @@ export default function reducer(
|
|||||||
...state,
|
...state,
|
||||||
awaitingSubmission: action.awaitingSubmission,
|
awaitingSubmission: action.awaitingSubmission,
|
||||||
};
|
};
|
||||||
|
case awaitingSubmissionActionTypes.SETAWAITINGSUBMISSIONFROMBLOB:
|
||||||
|
return {
|
||||||
|
...state,
|
||||||
|
awaitingSubmissionFromBlob: action.awaitingSubmissionFromBlob,
|
||||||
|
};
|
||||||
case awaitingSubmissionActionTypes.SETAWAITINGSUBMISSIONDETAILS:
|
case awaitingSubmissionActionTypes.SETAWAITINGSUBMISSIONDETAILS:
|
||||||
return {
|
return {
|
||||||
...state,
|
...state,
|
||||||
|
|||||||
Reference in New Issue
Block a user