Merge branch 'Development' into nextauth-and-magic-poc

This commit is contained in:
2022-05-05 15:56:00 +01:00
27 changed files with 916 additions and 413 deletions
+2 -1
View File
@@ -34,7 +34,8 @@ export default async function ApiProxy(req, res) {
var token = await getToken();
var queryUrl =
"stringmaps?$filter=objecttypecode eq 'incident' and attributename eq 'pinswg_appealcasetype' and value ne 'Developments of National Significance' and value ne 'LDP' and value ne 'Misc Casework'&$count=true&$select=value,stringmapid,organizationid,attributevalue&$orderby=value asc";
"stringmaps?$filter=objecttypecode eq 'incident' and attributename eq 'pinswg_appealcasetype' and value ne 'LDP' and value ne 'Misc Casework'&$count=true&$select=value,stringmapid,organizationid,attributevalue&$orderby=value asc";
//"stringmaps?$filter=objecttypecode eq 'incident' and attributename eq 'pinswg_appealcasetype' and value ne 'Developments of National Significance' and value ne 'LDP' and value ne 'Misc Casework'&$count=true&$select=value,stringmapid,organizationid,attributevalue&$orderby=value asc";
console.log(queryUrl);
return axios
@@ -0,0 +1,50 @@
import axios from "axios";
import CryptoJS from "crypto-js";
import { getToken, azureHeadersNoOdata } from "../../../actions";
import { getSelectQuery } from "../../../actions/selectQueryTypes";
const WORDKEY = process.env.HASHKEY;
const WEBAPI_URL =
process.env.RELAY_ROOT ||
"https://dev-pedw-ns.servicebus.windows.net/dev-pedw-hc/";
const hashAPIPath = (queryPath) => {
var hashlink = CryptoJS.HmacSHA256(
queryPath,
CryptoJS.enc.Hex.parse(WORDKEY)
);
hashlink = hashlink.toString(CryptoJS.enc.Hex);
return (queryPath.indexOf("?") > -1 ? "&hash=" : "?hash=") + hashlink;
};
export default async function ApiProxy(req, res) {
var appealTypeName = req.query.appealTypeName;
var primaryIdAttribute = req.query.primaryIdAttribute;
var incidentID = req.query.incidentID;
var token = await getToken();
var queryUrl =
appealTypeName +
"?$filter=_" +
primaryIdAttribute +
"s_value eq " +
incidentID +
"&$count=true";
queryUrl = queryUrl; //+ getSelectQuery(appealTypeName);
//console.log("query: ", queryUrl, "<<<<end query");
return axios
.get(
WEBAPI_URL + queryUrl + hashAPIPath(queryUrl),
azureHeadersNoOdata(token.access_token)
)
.then(({ data }) => {
res.status(200).json(data);
})
.catch(({ err }) => {
res.status(400).json(err);
});
}
+1 -1
View File
@@ -32,7 +32,7 @@ export default async function ApiProxy(req, res) {
searchString +
"')) and pinswg_appealcasetype ne null and pinswg_publishtoweb eq true&$orderby=createdon desc&$count=true";
// console.log("basic search ", queryUrl);
console.log("basic search ", queryUrl);
var apiResponse = _.isEmpty(req.query)
? res.status(400).json()
@@ -0,0 +1,63 @@
import axios from "axios";
import CryptoJS from "crypto-js";
import _ from "lodash";
import { getToken, azureHeadersPaged } from "../../../actions";
const WORDKEY = process.env.HASHKEY;
const WEBAPI_URL =
process.env.RELAY_ROOT ||
"https://dev-pedw-ns.servicebus.windows.net/dev-pedw-hc/";
const hashAPIPath = (queryPath) => {
var hashlink = CryptoJS.HmacSHA256(
queryPath,
CryptoJS.enc.Hex.parse(WORDKEY)
);
hashlink = hashlink.toString(CryptoJS.enc.Hex);
//return "&hash=" + hashlink;
return (queryPath.indexOf("?") > -1 ? "&hash=" : "?hash=") + hashlink;
};
export default async function ApiProxy(req, res) {
var searchString = req.query.searchString;
var token = await getToken();
var queryUrl =
"incidents?$select=description,numberofchildincidents,_accountid_value,_customerid_value,_pinswg_associatedlpa_value,_ownerid_value,pinswg_appealcasetype,statuscode,ticketnumber,title, _primarycontactid_value&$expand=primarycontactid($select=fullname)&$filter=(contains(title, '" +
searchString +
"') or contains(ticketnumber, '" +
searchString +
"')) and pinswg_appealcasetype ne null&$orderby=createdon desc&$count=true";
console.log("basic search ", queryUrl);
var apiResponse = _.isEmpty(req.query)
? res.status(400).json()
: searchString.length > 0
? axios
.get(
WEBAPI_URL + queryUrl + hashAPIPath(queryUrl),
azureHeadersPaged(token.access_token)
)
.then(({ data }) => {
var dataStr;
// dataStr = dataStr.replace(/: true/gm, `: "Yes"`);
// dataStr = dataStr.replace(/: false/gm, `: "No"`);
// console.log("replaced strinig:", dataStr);
_.has(data, "@odata.nextLink") == true &&
((dataStr = JSON.stringify(data["@odata.nextLink"])),
(data["@odata.nextLink"] = dataStr.split("/v8.2/")[1]));
res.status(200).json(data);
})
.catch(({ err }) => {
res.status(400).json(err);
})
: res.status(400).json();
return apiResponse;
}
@@ -20,9 +20,11 @@ const hashAPIPath = (queryPath) => {
export default async function ApiProxy(req, res) {
var appealType = req.query.appealType;
var caseReference = req.query.caseReference;
var caseReference = req.query.caseReference.split("'").join("''");
var token = await getToken();
//console.log("the case:", caseReference);
var queryUrl =
appealType +
"?$filter=pinswg_name eq '" +
@@ -31,6 +33,8 @@ export default async function ApiProxy(req, res) {
queryUrl = queryUrl + getSelectQuery(appealType);
//console.log("test:", queryUrl);
return axios
.get(
WEBAPI_URL + queryUrl + hashAPIPath(queryUrl),
+36
View File
@@ -0,0 +1,36 @@
import nextConnect from "next-connect";
import multer from "multer";
const upload = multer({
storage: multer.diskStorage({
destination: "./public/uploads",
filename: (req, file, cb) => cb(null, file.originalname),
}),
});
const apiRoute = nextConnect({
onError(error, req, res) {
console.log("booo", req.data);
res.status(501).json({
error: `Sorry something Happened! ${error.message}`,
});
},
onNoMatch(req, res) {
res.status(405).json({ error: `Method '${req.method}' Not Allowed` });
},
});
apiRoute.use(upload.array("fileList"));
apiRoute.post((req, res) => {
res.status(200).json({ data: "success" });
});
export default apiRoute;
export const config = {
api: {
bodyParser: false, // Disallow body parsing, consume as stream
},
};
+7 -1
View File
@@ -18,7 +18,7 @@ import {
import { wrapper } from "../store/store";
const Home = (props) => {
const { footerLinks, pages } = props;
const { footerLinks, pages, showMap } = props;
let { t, lang } = useTranslation();
const router = useRouter();
@@ -99,6 +99,7 @@ const Home = (props) => {
<div className="govuk-width-container">
<Breadcrumbs slug={appealtypes} />
<DNSSearchResults
showMap={showMap}
searchString="DNS"
searchResultsObj={props.searchResultsObj}
/>
@@ -129,12 +130,17 @@ export const getServerSideProps = wrapper.getServerSideProps(
}
: searchResultsObj;
const showMapCheck = process.env.SHOWMAPS || false;
const searchDetailsObj = await getSearchDetails(searchResultsObj);
const dnsCoords = await getDNSCoords();
store.dispatch(setSearchResults(searchResultsObj));
store.dispatch(setSearchDetails(searchDetailsObj));
store.dispatch(setSearch("DNS"));
store.dispatch(setDNSCoords(dnsCoords));
return {
props: { showMap: showMapCheck },
};
}
);
+2 -1
View File
@@ -9,7 +9,7 @@ import Footer from "../components/footer";
import Header from "../components/header";
const Home = (props) => {
const { footerLinks, pages } = props;
const { footerLinks, pages, showMap } = props;
let { t, lang } = useTranslation();
const router = useRouter();
@@ -63,6 +63,7 @@ const Home = (props) => {
appealTypeID={
props.currentView.caseReference.appealType
}
showMap={props.currentView.caseReference.showMap}
/>
</div>
<Footer footerLinks={footerLinks} />
+4
View File
@@ -26,6 +26,7 @@ const Home = (props) => {
footerLinks,
pages,
showLogin,
showMap,
loggedInUserId,
hasGGCode,
loginEmailStr,
@@ -141,6 +142,7 @@ const Home = (props) => {
ggLocale={ggLocale}
pages={pages}
showLogin={showLogin}
showMap={showMap}
loggedInUserId={loggedInUserId}
GG_REDIRECT_URI={props.GG_REDIRECT_URI}
GG_CLIENT_ID={props.GG_CLIENT_ID}
@@ -166,6 +168,7 @@ export const getServerSideProps = wrapper.getServerSideProps(
console.log("auth sess:", thisSession);
const showLoginCheck = process.env.SHOWLOGIN || false;
const showMapCheck = process.env.SHOWMAPS || false;
const hasLoginCode = thisSession != null;
@@ -215,6 +218,7 @@ export const getServerSideProps = wrapper.getServerSideProps(
props: {
ggLocale: ggLocale,
showLogin: showLoginCheck,
showMap: showMapCheck,
hasGGCode: hasLoginCode,
loggedInUserId: portalUserObj,
loggedInUserEmail: loginEmailStr,
+17
View File
@@ -10,6 +10,7 @@ import {
getAppealsTypes,
getMandatoryFields,
getPickLists,
getPartSavedAppeal,
} from "../../actions";
import { getProviderConfig } from "../../actions/govgateway";
import Breadcrumbs from "../../components/breadcrumbs";
@@ -32,6 +33,7 @@ import {
import { setForm } from "../../store/formData/action";
import { getGovGatewayConfig } from "../../store/govgateway/action";
import { wrapper } from "../../store/store";
import { getPartSavedDetails } from "../../components/utils";
let Home = (props) => {
const { footerLinks, pages, formData } = props;
@@ -218,10 +220,23 @@ export const getServerSideProps = wrapper.getServerSideProps(
await getPickLists(query.appealtypes),
]);
let searchResultsObj = await getPartSavedAppeal(query.casereference);
//console.log("eeee:", searchResultsObj);
let searchDetailsObj = await getPartSavedDetails(searchResultsObj);
console.log("appeal:", searchDetailsObj[0].value[0]);
searchDetailsObj = searchDetailsObj[0].value[0];
searchDetailsObj = JSON.stringify(searchDetailsObj);
searchDetailsObj = searchDetailsObj.replace(/:true/gm, `:"Yes"`);
searchDetailsObj = searchDetailsObj.replace(/:false/gm, `:"No"`);
searchDetailsObj = JSON.parse(searchDetailsObj);
let caseReference = {};
caseReference.ticketnumber = query.casereference;
caseReference.incidentid = query.inid;
caseReference.caseDetails = searchDetailsObj;
var path = require("path");
const configDirectory = path.resolve(process.cwd(), "data/formsxml");
@@ -255,6 +270,8 @@ const mapStateToProps = (state) => {
form: state.form,
accountDetails: state.accountDetails,
govGateway: state.govGateway,
awaitingSubmission: state.awaitingSubmission,
currentView: state.currentView,
};
};