@@ -882,6 +1040,21 @@ const mapDispatchToProps = (dispatch) => {
setAwaitingSubmissionDetails: (awaitingSubmission) => {
dispatch(setAwaitingSubmissionDetails(awaitingSubmission));
},
+ setWatchedCases: (watchedCases) => {
+ dispatch(setWatchedCases(watchedCases));
+ },
+ setWatchedCasesDetails: (watchedCasesDetails) => {
+ dispatch(setWatchedCasesDetails(watchedCasesDetails));
+ },
+ setWatchedCasesDetails: (watchedCasesDetails) => {
+ dispatch(setWatchedCasesDetails(watchedCasesDetails));
+ },
+ setMyRepresentations: (myRepresentations) => {
+ dispatch(setMyRepresentations(myRepresentations));
+ },
+ setMyRepresentationsDetails: (myRepresentationsDetails) => {
+ dispatch(setMyRepresentationsDetails(myRepresentationsDetails));
+ },
};
};
diff --git a/i18n.js b/i18n.js
index c2bc27ff..91823d74 100644
--- a/i18n.js
+++ b/i18n.js
@@ -18,6 +18,7 @@ module.exports = {
"/myportal/advancedsearchresults": ["search", "myportal"],
"/myportal/searchresults": ["search", "myportal", "case"],
"/myportal/case": ["case"],
+ "/myportal/case/[ticketnumber]": ["case"],
"/myportal/dnsapplications": ["search", "dnsCommon", "dnsApplications"],
"/myportal/dnsdetails": [
"case",
diff --git a/pages/api/endpoint/getbasicdnssearchdetails_api.js b/pages/api/endpoint/getbasicdnssearchdetails_api.js
index a9b65b70..3a00a3e4 100644
--- a/pages/api/endpoint/getbasicdnssearchdetails_api.js
+++ b/pages/api/endpoint/getbasicdnssearchdetails_api.js
@@ -41,7 +41,8 @@ export default async function ApiProxy(req, res) {
var queryUrl =
"pinswg_dnses?$filter=pinswg_name eq '" +
caseReference +
- " and statuscode eq 1&$count=true";
+ "&$count=true";
+ //" and statuscode eq 1&$count=true";
queryUrl = queryUrl + getSelectQuery("pinswg_dnses");
diff --git a/pages/api/endpoint/getbasicdnssearchdetailspaged_api.js b/pages/api/endpoint/getbasicdnssearchdetailspaged_api.js
index e9742aca..f179a921 100644
--- a/pages/api/endpoint/getbasicdnssearchdetailspaged_api.js
+++ b/pages/api/endpoint/getbasicdnssearchdetailspaged_api.js
@@ -40,7 +40,8 @@ export default async function ApiProxy(req, res) {
var queryUrl =
"pinswg_dnses?$filter=pinswg_name eq '" +
caseReference +
- " and statuscode eq 1&$count=true";
+ "&$count=true";
+ //" and statuscode eq 1&$count=true";
queryUrl = queryUrl + getSelectQuery("pinswg_dnses");
diff --git a/pages/api/endpoint/getbasicsearchdetails_api.js b/pages/api/endpoint/getbasicsearchdetails_api.js
index 9f04e387..041b9156 100644
--- a/pages/api/endpoint/getbasicsearchdetails_api.js
+++ b/pages/api/endpoint/getbasicsearchdetails_api.js
@@ -61,7 +61,8 @@ export default async function ApiProxy(req, res) {
primaryIdAttribute +
"s_value eq " +
incidentID +
- " and statuscode eq 1&$count=true";
+ "&$count=true";
+ //" and statuscode eq 1&$count=true";
queryUrl = queryUrl + getSelectQuery(appealTypeName);
diff --git a/pages/api/endpoint/getbasicsearchdetailspaged_api.js b/pages/api/endpoint/getbasicsearchdetailspaged_api.js
index 21020a5b..91942889 100644
--- a/pages/api/endpoint/getbasicsearchdetailspaged_api.js
+++ b/pages/api/endpoint/getbasicsearchdetailspaged_api.js
@@ -65,7 +65,8 @@ export default async function ApiProxy(req, res) {
primaryIdAttribute +
"s_value eq " +
incidentID +
- " and statuscode eq 1&$count=true";
+ "&$count=true";
+ //" and statuscode eq 1&$count=true";
queryUrl = queryUrl + getSelectQuery(appealTypeName);
diff --git a/pages/api/file/deleteblobrep.js b/pages/api/file/deleteblobrep.js
new file mode 100644
index 00000000..7fddf7d8
--- /dev/null
+++ b/pages/api/file/deleteblobrep.js
@@ -0,0 +1,45 @@
+import { hashAPIPath } from "../../../actions";
+import { deleteBlobCase } 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 repfile = req.query.repfile;
+ var blobName = req.query.blobname;
+ var checkHash = req.query.hash;
+
+ var checkquerypath =
+ "/api/file/deleteblobrep?container=" +
+ containerName +
+ "&casefolderID=" +
+ casefolderID +
+ "&repfile=" +
+ repfile;
+
+ casefolderID = casefolderID + "/" + repfile;
+
+ // console.log(hashAPIPath(checkquerypath), checkHash);
+ // console.log(hashAPIPath(checkquerypath) == "&hash=" + checkHash);
+
+ //if (hashAPIPath(checkquerypath) == "&hash=" + checkHash) {
+ await deleteBlobCase(containerName, casefolderID).then((data) => {
+ return res.status(200).json({ data: data });
+ });
+ // } else {
+ // return res.status(400).json();
+ // }
+});
+
+export const config = {
+ api: {
+ bodyParser: false,
+ },
+};
+
+export default ApiProxy;
diff --git a/pages/api/file/getrepsblobproxy.js b/pages/api/file/getrepsblobproxy.js
new file mode 100644
index 00000000..a7fd99b8
--- /dev/null
+++ b/pages/api/file/getrepsblobproxy.js
@@ -0,0 +1,44 @@
+import {
+ downloadAllProgressFiles,
+ getAllProgressBlobs,
+} from "../../../actions/azurestorage";
+import _ from "lodash";
+import nextConnect from "next-connect";
+import middleware from "../middleware/middleware";
+import {
+ getToken,
+ azureHeaders,
+ consoleLogger,
+ hashAPIPath,
+} from "../../../actions";
+import axios from "axios";
+import CryptoJS from "crypto-js";
+
+const WORDKEY = process.env.HASHKEY;
+
+const WEBAPI_URL =
+ process.env.RELAY_ROOT ||
+ "https://dev-pedw-ns.servicebus.windows.net/dev-pedw-hc/";
+
+const BASE_URL = process.env.API_ROOT || `http://localhost:${port}`;
+
+export default async function ApiProxy(req, res) {
+ var containerName = req.query.container;
+ var checkHash = req.query.hash;
+ var token = await getToken();
+
+ var queryUrl = "/api/file/getrepsblob?container=" + containerName;
+
+ return axios
+ .get(
+ BASE_URL + queryUrl + hashAPIPath(queryUrl),
+ azureHeaders(token.access_token)
+ )
+ .then(({ data }) => {
+ res.status(200).json(data);
+ })
+ .catch((err) => {
+ consoleLogger(err);
+ res.status(400).json(err);
+ });
+}
diff --git a/pages/myportal/addresssearchresults.js b/pages/myportal/addresssearchresults.js
index 1e209d8b..00a219f1 100644
--- a/pages/myportal/addresssearchresults.js
+++ b/pages/myportal/addresssearchresults.js
@@ -185,6 +185,7 @@ export const getServerSideProps = wrapper.getServerSideProps(
store.dispatch(setWatchedCases(watchedCases));
store.dispatch(setWatchedCasesDetails(watchedCasesDetails));
store.dispatch(setSearch(Object.entries(query)));
+ store.dispatch(setLoggedInUserId(loggedInUser));
}
return {
@@ -243,6 +244,7 @@ const mapStateToProps = (state) => {
watchedCases: state.watchedCases,
myRepresentations: state.myRepresentations,
awaitingSubmission: state.awaitingSubmission,
+ accountDetails: state.accountDetails,
};
};
diff --git a/pages/myportal/case/[ticketnumber].js b/pages/myportal/case/[ticketnumber].js
new file mode 100644
index 00000000..8ec67a23
--- /dev/null
+++ b/pages/myportal/case/[ticketnumber].js
@@ -0,0 +1,225 @@
+import useTranslation from "next-translate/useTranslation";
+import Head from "next/head";
+import { useRouter } from "next/router";
+import { connect } from "react-redux";
+import {
+ getBasicSearch,
+ getIP,
+ getPortalLogin,
+ getPersonalAccount,
+} from "../../../actions";
+import CookieBanner from "../../../components/cookieBanner";
+import Footer from "../../../components/footer";
+import Header from "../../../components/header";
+import { getSearchDetails } from "../../../components/utils";
+import { setCurrentReference } from "../../../store/currentView/action";
+import { setSearch } from "../../../store/search/action";
+import {
+ setSearchDetails,
+ setSearchResults,
+} from "../../../store/searchOutput/action";
+import { wrapper } from "../../../store/store";
+import Case from "../../../components/case";
+import Breadcrumbs from "../../../components/breadcrumbs";
+import { getSession, useSession } from "next-auth/react";
+import {
+ setAccountDetails,
+ setContainerID,
+ setLoggedInUserId,
+} from "../../../store/accountDetails/action";
+
+const CaseHome = (props) => {
+ const { footerLinks, pages } = props;
+ let { t, lang } = useTranslation();
+
+ const router = useRouter();
+ const { locale } = router;
+ const { ticketnumber } = router.query;
+
+ return (
+
+
+
+ Reference:{" "}
+ {props.currentView.caseReference.currentReference}{" "}
+
+
+
+
+ );
+};
+
+export const getServerSideProps = wrapper.getServerSideProps(
+ (store) => async (ctx) => {
+ const { query, req, res } = ctx;
+ getIP(req);
+ const { cookies } = req;
+
+ console.log(cookies);
+ console.log("the query :", query.ticketnumber);
+
+ let thisSession = await getSession(ctx);
+ let loggedInUser = {};
+
+ if (thisSession) {
+ console.log(" has sesssion.......");
+ [loggedInUser] = await Promise.all([
+ await getPortalLogin(thisSession.user.email),
+ ]);
+
+ loggedInUser = loggedInUser.value[0].contactid;
+
+ const accountDetails = await getPersonalAccount(loggedInUser);
+ store.dispatch(setAccountDetails(accountDetails));
+ } else {
+ console.log("not has sesssion.......");
+ }
+
+ let developmentQuery =
+ query.ticketnumber.indexOf("CAS-") == 0
+ ? query.ticketnumber
+ : query.ticketnumber.split("-").join(" ");
+
+ const searchResultsObj = await getBasicSearch(developmentQuery);
+ const searchDetailsObj = await getSearchDetails(searchResultsObj);
+
+ console.log(
+ "\n======================================\n",
+ searchResultsObj,
+ "\n======================================\n"
+ );
+ console.log(
+ "\n======================================\n",
+ searchDetailsObj[0],
+ "\n======================================\n"
+ );
+
+ store.dispatch(setSearch(developmentQuery));
+
+ console.log(
+ searchResultsObj["@odata.count"] > 1 ||
+ searchResultsObj["@odata.count"] < 1
+ );
+
+ if (searchResultsObj["@odata.count"] < 1) {
+ return {
+ redirect: {
+ destination: "/404",
+ permanent: false,
+ },
+ };
+ } else {
+ if (searchResultsObj["@odata.count"] > 1) {
+ return {
+ redirect: {
+ //destination: "/dns-not-found",
+ destination: "/404",
+ permanent: false,
+ },
+ };
+ } else {
+ store.dispatch(
+ setCurrentReference({
+ "ticketnumber": searchResultsObj.value[0].ticketnumber,
+ "currentReference": searchResultsObj.value[0].title,
+ "currentType": "searchResultsObj",
+ "incidentid": searchResultsObj.value[0].incidentid,
+ "appealType":
+ searchResultsObj.value[0].pinswg_appealcasetype,
+ })
+ );
+ }
+ }
+ // console.log(searchResultsObj);
+ return {
+ props: {
+ searchResultsObj: {
+ searchResultsObj: searchResultsObj,
+ searchDetailsObj: searchDetailsObj,
+ },
+ currentType: "directResultsObj",
+ },
+ };
+ }
+);
+
+const mapStateToProps = (state) => {
+ return {
+ accountDetails: state.accountDetails,
+ currentView: state.currentView,
+ search: state.search,
+ //searchResultsObj: state.searchResultsObj,
+ documentDetailsObj: state.searchResultsObj.documentDetailsObj,
+ formData: state.formData,
+ appealType: state.appealType,
+ form: state.form,
+ myCases: state.myCases,
+ watchedCases: state.watchedCases,
+ myRepresentations: state.myRepresentations,
+ awaitingSubmission: state.awaitingSubmission,
+ };
+};
+
+const mapDispatchToProps = (dispatch) => {
+ return {
+ setCurrentReference: (currentReference) => {
+ dispatch(setCurrentReference(refno));
+ },
+ };
+};
+
+export default connect(mapStateToProps, mapDispatchToProps)(CaseHome);
diff --git a/pages/myportal/dnsapplications.js b/pages/myportal/dnsapplications.js
index a1375271..c4d9616b 100644
--- a/pages/myportal/dnsapplications.js
+++ b/pages/myportal/dnsapplications.js
@@ -30,6 +30,11 @@ import {
setWatchedCases,
setWatchedCasesDetails,
} from "../../store/watchedCases/action";
+import {
+ setAccountDetails,
+ setContainerID,
+ setLoggedInUserId,
+} from "../../store/accountDetails/action";
import { getSession, useSession } from "next-auth/react";
@@ -181,6 +186,8 @@ export const getServerSideProps = wrapper.getServerSideProps(
store.dispatch(setDNSCoords(dnsCoords));
store.dispatch(setWatchedCases(watchedCases));
store.dispatch(setWatchedCasesDetails(watchedCasesDetails));
+ store.dispatch(setLoggedInUserId(loggedInUser));
+
return {
props: { showMap: showMapCheck },
};