updated translations and oauth
This commit is contained in:
+40
-19
@@ -1,35 +1,56 @@
|
||||
import Document, { Html, Head, Main, NextScript } from "next/document";
|
||||
import SkipLink from "../components/skiplink";
|
||||
import { Tracking, TrackingNoScript } from "../components/tracking";
|
||||
//import basicAuthMiddleware from "nextjs-basic-auth-middleware";
|
||||
import basicAuthMiddleware from "nextjs-basic-auth-middleware";
|
||||
|
||||
class MyDocument extends Document {
|
||||
// static async getInitialProps(ctx) {
|
||||
// const initialProps = await Document.getInitialProps(ctx);
|
||||
// if (ctx.req && ctx.res) {
|
||||
// await basicAuthMiddleware(ctx.req, ctx.res, {
|
||||
// users: [
|
||||
// {
|
||||
// name: "rehab",
|
||||
// password: "preventTesting",
|
||||
// },
|
||||
// ],
|
||||
// });
|
||||
// }
|
||||
// return { ...initialProps };
|
||||
// }
|
||||
static async getInitialProps(ctx) {
|
||||
const initialProps = await Document.getInitialProps(ctx);
|
||||
|
||||
let useGATracking = false;
|
||||
|
||||
// remove this block when not need after softlaunch
|
||||
let hasBasicAuth =
|
||||
typeof process.env.BASIC_AUTH_CREDENTIALS != "undefined";
|
||||
|
||||
console.log(hasBasicAuth);
|
||||
|
||||
if (ctx.req && ctx.res) {
|
||||
hasBasicAuth &&
|
||||
(await basicAuthMiddleware(ctx.req, ctx.res, {
|
||||
users: process.env.BASIC_AUTH_CREDENTIALS,
|
||||
}));
|
||||
}
|
||||
|
||||
if (ctx.req && ctx.req.headers.cookie) {
|
||||
typeof ctx.req.cookies.CookiePolicy != "undefined"
|
||||
? JSON.parse(ctx.req.cookies.CookiePolicy).usage == "accepted"
|
||||
? (useGATracking = true)
|
||||
: (useGATracking = false)
|
||||
: (useGATracking = true);
|
||||
} else {
|
||||
useGATracking = false;
|
||||
}
|
||||
|
||||
return { ...initialProps, useGATracking };
|
||||
}
|
||||
|
||||
render() {
|
||||
const googleTagManagerID = process.env.GOOGLE_TAG_MANAGER || null;
|
||||
|
||||
const { useGATracking } = this.props;
|
||||
return (
|
||||
<Html lang="en">
|
||||
<Head>
|
||||
<Tracking googleTagManagerID={googleTagManagerID} />
|
||||
{useGATracking && (
|
||||
<Tracking googleTagManagerID={googleTagManagerID} />
|
||||
)}
|
||||
</Head>
|
||||
<body className="js-enabled">
|
||||
<TrackingNoScript googleTagManagerID={googleTagManagerID} />
|
||||
|
||||
{useGATracking && (
|
||||
<TrackingNoScript
|
||||
googleTagManagerID={googleTagManagerID}
|
||||
/>
|
||||
)}
|
||||
{!process.browser && (
|
||||
<script>
|
||||
window.switchDomain = `{process.env.I18N_DOMAIN}`
|
||||
|
||||
@@ -0,0 +1,91 @@
|
||||
import _ from "lodash";
|
||||
import { useState, useEffect, useRef } from "react";
|
||||
import Head from "next/head";
|
||||
import Header from "../components/header";
|
||||
import ServiceBanner from "../components/servicebanner";
|
||||
import CookieBanner from "../components/cookieBanner";
|
||||
import Breadcrumbs from "../components/breadcrumbs";
|
||||
import Main from "../components/main";
|
||||
import Footer from "../components/footer";
|
||||
import Errorpage from "../components/errorpage";
|
||||
import styles from "../styles/Home.module.css";
|
||||
import { useSelector, shallowEqual, connect } from "react-redux";
|
||||
import { wrapper } from "../store/store";
|
||||
import { useRouter } from "next/router";
|
||||
import useTranslation from "next-translate/useTranslation";
|
||||
import { getIncidents } from "../actions";
|
||||
import { parseCookies } from "nookies";
|
||||
import AccessibilityStatement from "../components/accessibility";
|
||||
|
||||
const Accessibility = (props) => {
|
||||
const { footerLinks, pages, showLogin } = props;
|
||||
let { t, lang } = useTranslation();
|
||||
|
||||
const router = useRouter();
|
||||
const { locale } = router;
|
||||
|
||||
return (
|
||||
<div>
|
||||
<Head>
|
||||
<title>{t("common:service-name")}</title>
|
||||
{/* Language by default is EN, if multilingual site this will need updated */}
|
||||
<meta
|
||||
key="og:locale"
|
||||
property="og:locale"
|
||||
content={router.locale}
|
||||
/>
|
||||
{/* If they have a Twitter Handle, include the meta details below */}
|
||||
<meta
|
||||
key="og:site_name"
|
||||
property="og:site_name"
|
||||
content={t("common:service-name")}
|
||||
/>
|
||||
<meta
|
||||
key="twitter:site"
|
||||
property="twitter:site"
|
||||
content="@UKGovWales"
|
||||
/>
|
||||
|
||||
<meta
|
||||
name="description"
|
||||
content={t("common:service-description")}
|
||||
/>
|
||||
<meta
|
||||
property="og:site_name"
|
||||
content={t("common:gov-wales-label")}
|
||||
/>
|
||||
<meta property="og:type" content="website" />
|
||||
<meta property="og:url" content={t("common:gov-wales-link")} />
|
||||
<meta
|
||||
property="og:image"
|
||||
content="https://gov.wales/themes/custom/govwales/images/content/og-global-1200.png"
|
||||
/>
|
||||
<meta name="twitter:card" content="summary" />
|
||||
<meta
|
||||
name="twitter:title"
|
||||
content={t("common:gov-wales-label")}
|
||||
/>
|
||||
<meta
|
||||
name="twitter:url"
|
||||
content={t("common:gov-wales-link") + router.pathname}
|
||||
/>
|
||||
<meta
|
||||
name="twitter:image"
|
||||
content="https://gov.wales/themes/custom/govwales/images/content/og-global-120.png"
|
||||
/>
|
||||
</Head>
|
||||
<div id="page_wrapper">
|
||||
<CookieBanner />
|
||||
<Header courseName="Appeals Casework Portal" />
|
||||
<div className="govuk-width-container">
|
||||
<Breadcrumbs />
|
||||
<ServiceBanner />
|
||||
<AccessibilityStatement />
|
||||
</div>
|
||||
<Footer footerLinks={footerLinks} />
|
||||
</div>
|
||||
</div>
|
||||
);
|
||||
};
|
||||
|
||||
export default Accessibility; //connect(mapStateToProps)(Home);
|
||||
@@ -28,7 +28,7 @@ import {
|
||||
getLPA,
|
||||
updateCase,
|
||||
createCase,
|
||||
getSASToken,
|
||||
getToken,
|
||||
} from "../actions";
|
||||
import { setLPA } from "../store/lpa/action";
|
||||
|
||||
@@ -139,7 +139,8 @@ const Home = (props) => {
|
||||
export const getServerSideProps = wrapper.getServerSideProps(
|
||||
(store) =>
|
||||
async ({ query, req, res }) => {
|
||||
const token = await getSASToken();
|
||||
let token = await getToken();
|
||||
token = token.access_token;
|
||||
|
||||
const [appealTypeData, lpaData] = await Promise.all([
|
||||
await getAppealsTypes(token),
|
||||
|
||||
@@ -22,11 +22,7 @@ import {
|
||||
setSearchDetails,
|
||||
getSearchResultsObj,
|
||||
} from "../store/searchOutput/action";
|
||||
import {
|
||||
getAdvancedSearch,
|
||||
getBasicSearchDetails,
|
||||
getSASToken,
|
||||
} from "../actions";
|
||||
import { getAdvancedSearch, getBasicSearchDetails, getToken } from "../actions";
|
||||
|
||||
const Home = (props) => {
|
||||
const { footerLinks, pages } = props;
|
||||
@@ -127,7 +123,8 @@ export const getServerSideProps = wrapper.getServerSideProps(
|
||||
console.log("query-", query);
|
||||
//console.log("search array:", Object.entries(query));
|
||||
|
||||
const token = await getSASToken();
|
||||
let token = await getToken();
|
||||
token = token.access_token;
|
||||
|
||||
const searchResultsObj = await getAdvancedSearch(token, query);
|
||||
const searchDetailsObj = await getSearchDetails(
|
||||
|
||||
+127
-86
@@ -1,7 +1,8 @@
|
||||
import axios from "axios";
|
||||
import https from "https";
|
||||
import CryptoJS from "crypto-js";
|
||||
import { response } from "express";
|
||||
import HmacSHA256 from "crypto-js/hmac-sha256";
|
||||
import { rest } from "lodash";
|
||||
|
||||
const PROXY_RELAY_URL =
|
||||
"https://" +
|
||||
@@ -10,74 +11,111 @@ const PROXY_RELAY_URL =
|
||||
(process.env.RELAYPATH || "dev-pedw-hc") +
|
||||
"/";
|
||||
|
||||
const getSASToken = () => {
|
||||
var m_ResourceURI =
|
||||
process.env.RELAYURI || "dev-pedw-ns.servicebus.windows.net";
|
||||
var m_Path = process.env.RELAYPATH || "dev-pedw-hc";
|
||||
var m_SasKey =
|
||||
process.env.SASKEY || "Ml0Y/S/nfRcmIrHFRkO4jNm2J3iH52TSxPiak7+E1+Y=";
|
||||
var m_SasKeyName = process.env.SASKEYNAME || "devpedwnspolicy";
|
||||
const accessTokenEndpoint = process.env.ACCESS_TOKEN_ENDPOINT;
|
||||
const tenantId = process.env.TENANT;
|
||||
|
||||
var encodedResourceUri = encodeURIComponent(
|
||||
"https://" + m_ResourceURI + "/" + m_Path + "/"
|
||||
);
|
||||
const tokenBody =
|
||||
"grant_type=" +
|
||||
process.env.GRANT_TYPE +
|
||||
"&client_id=" +
|
||||
process.env.CLIENT_ID +
|
||||
"&client_secret=" +
|
||||
process.env.CLIENT_SECRET +
|
||||
"&scope=" +
|
||||
"https://" +
|
||||
process.env.RELAYURI +
|
||||
"/.default";
|
||||
|
||||
var t0 = new Date(1970, 1, 1, 0, 0, 0, 0);
|
||||
var t1 = new Date();
|
||||
var expireInSeconds =
|
||||
+(31 * 24 * 3600) + 3600 + (((t1.getTime() - t0.getTime()) / 1000) | 0);
|
||||
|
||||
//the line below is a hack that converts to UTF8
|
||||
var plainSignature = JSON.parse(
|
||||
JSON.stringify(encodedResourceUri + "\n" + expireInSeconds)
|
||||
);
|
||||
|
||||
var hash = CryptoJS.HmacSHA256(plainSignature, m_SasKey);
|
||||
var base64HashValue = CryptoJS.enc.Base64.stringify(hash);
|
||||
|
||||
var token =
|
||||
"SharedAccessSignature sr=" +
|
||||
encodedResourceUri +
|
||||
"&sig=" +
|
||||
encodeURIComponent(base64HashValue) +
|
||||
"&se=" +
|
||||
expireInSeconds +
|
||||
"&skn=" +
|
||||
m_SasKeyName;
|
||||
|
||||
return token;
|
||||
const tokenConfig = {
|
||||
headers: {
|
||||
"Content-Type": "application/x-www-form-urlencoded",
|
||||
"Cache-Control": "no-cache",
|
||||
},
|
||||
};
|
||||
|
||||
export default async function ApiProxy(req, res) {
|
||||
//console.log(req.method);
|
||||
export const getToken = () => {
|
||||
return axios
|
||||
.post(
|
||||
`${accessTokenEndpoint}${tenantId}/oauth2/v2.0/token`,
|
||||
tokenBody,
|
||||
tokenConfig
|
||||
)
|
||||
.then((res) => res.data)
|
||||
.then((data) => {
|
||||
return data;
|
||||
})
|
||||
.catch((error) => {
|
||||
console.log("error :", error.response);
|
||||
// return error;
|
||||
});
|
||||
};
|
||||
|
||||
function checkProxyPath(queryPath) {
|
||||
const WORDKEY = process.env.NEXT_PUBLIC_HASHKEY;
|
||||
|
||||
var hashPath =
|
||||
queryPath.indexOf("/api/proxy/") == -1
|
||||
? queryPath
|
||||
: queryPath.split("/api/proxy/")[1];
|
||||
|
||||
const wordKey = WORDKEY;
|
||||
var hashlink = CryptoJS.HmacSHA256(
|
||||
decodeURI(hashPath),
|
||||
CryptoJS.enc.Hex.parse(wordKey)
|
||||
);
|
||||
|
||||
hashlink = hashlink.toString(CryptoJS.enc.Hex);
|
||||
|
||||
return hashlink;
|
||||
}
|
||||
|
||||
export default async function ApiProxy(req, res) {
|
||||
var data = JSON.stringify(req.body);
|
||||
const SASToken = getSASToken();
|
||||
var accessToken = await getToken();
|
||||
accessToken = accessToken.access_token;
|
||||
|
||||
const isDocument = req.url.indexOf("/documents/download") > -1;
|
||||
|
||||
let hashCheckPath = isDocument
|
||||
? req.url.split("?hash=")[0]
|
||||
: req.url.split("&hash=")[0];
|
||||
let hashCheckValue = isDocument
|
||||
? req.url.split("?hash=")[1]
|
||||
: req.url.split("&hash=")[1];
|
||||
let hashFromRequest = checkProxyPath(hashCheckPath);
|
||||
|
||||
var configNoData = {
|
||||
method: req.method,
|
||||
//url: PROXY_RELAY_URL + updateFormCollection + "(" + incidentId + ")",
|
||||
url: PROXY_RELAY_URL + req.url.split("/api/proxy/")[1],
|
||||
url:
|
||||
PROXY_RELAY_URL +
|
||||
req.url.split("&hash=")[0].split("/api/proxy/")[1] +
|
||||
"&hash=" +
|
||||
req.url.split("&hash=")[1],
|
||||
headers: {
|
||||
"OData-MaxVersion": "4.0",
|
||||
"OData-Version": "4.0",
|
||||
"Accept": "application/json",
|
||||
"Prefer":
|
||||
'odata.include-annotations="*",return=representation,odata.maxpagesize=10',
|
||||
"Authorization": SASToken,
|
||||
"Authorization": "Bearer " + accessToken,
|
||||
"Content-Type": "application/json",
|
||||
},
|
||||
};
|
||||
|
||||
var config = {
|
||||
method: req.method,
|
||||
url: PROXY_RELAY_URL + req.query.route[0],
|
||||
url:
|
||||
PROXY_RELAY_URL +
|
||||
req.query.route[0] +
|
||||
"&hash=" +
|
||||
req.url.split("&hash=")[1],
|
||||
headers: {
|
||||
"OData-MaxVersion": "4.0",
|
||||
"OData-Version": "4.0",
|
||||
"Accept": "application/json",
|
||||
"Prefer": 'odata.include-annotations="*",return=representation',
|
||||
"Authorization": SASToken,
|
||||
"Authorization": "Bearer " + accessToken,
|
||||
"Content-Type": "application/json",
|
||||
},
|
||||
data: data,
|
||||
@@ -85,58 +123,61 @@ export default async function ApiProxy(req, res) {
|
||||
|
||||
var configDocument = {
|
||||
method: req.method,
|
||||
url: PROXY_RELAY_URL + req.url.split("/api/proxy/")[1],
|
||||
url:
|
||||
PROXY_RELAY_URL +
|
||||
req.url.split("?hash=")[0].split("/api/proxy/")[1] +
|
||||
"?hash=" +
|
||||
req.url.split("?hash=")[1],
|
||||
headers: {
|
||||
"OData-MaxVersion": "4.0",
|
||||
"OData-Version": "4.0",
|
||||
"Accept": "application/json",
|
||||
"Prefer": 'odata.include-annotations="*",return=representation',
|
||||
"Authorization": SASToken,
|
||||
"Authorization": "Bearer " + accessToken,
|
||||
"Content-Type": "application/json",
|
||||
},
|
||||
responseType: "arraybuffer",
|
||||
};
|
||||
|
||||
return new Promise((resolve, reject) => {
|
||||
let apiPath = req.url.split("/api/proxy/")[1];
|
||||
let hasDocument = apiPath.indexOf("/download") > 0 ? true : false;
|
||||
// console.log(
|
||||
// "//////////////",
|
||||
// req.url.split("/api/proxy/")[1],
|
||||
// PROXY_RELAY_URL + req.query.route[0],
|
||||
// req.method,
|
||||
// hasDocument
|
||||
// );
|
||||
axios(
|
||||
req.method == "GET"
|
||||
? hasDocument
|
||||
? configDocument
|
||||
: configNoData
|
||||
: config
|
||||
)
|
||||
.then((response) => {
|
||||
res.statusCode = 200;
|
||||
if (hasDocument) {
|
||||
res.setHeader(
|
||||
"Content-disposition",
|
||||
"attachment; filename=" +
|
||||
response.headers["content-disposition"].split(
|
||||
"filename="
|
||||
)[1]
|
||||
);
|
||||
res.end(response.data);
|
||||
} else {
|
||||
res.setHeader("Content-Type", "application/json");
|
||||
// res.setHeader("Cache-Control", "max-age=1800000");
|
||||
res.end(JSON.stringify(response.data));
|
||||
}
|
||||
resolve();
|
||||
})
|
||||
.catch((error) => {
|
||||
console.log("proxy response error", error);
|
||||
res.json(error);
|
||||
res.status(405).end();
|
||||
return resolve();
|
||||
});
|
||||
});
|
||||
if (hashCheckValue == hashFromRequest) {
|
||||
return new Promise((resolve, reject) => {
|
||||
let hasDocument =
|
||||
hashCheckPath.indexOf("/download") > 0 ? true : false;
|
||||
|
||||
axios(
|
||||
req.method == "GET"
|
||||
? hasDocument
|
||||
? configDocument
|
||||
: configNoData
|
||||
: config
|
||||
)
|
||||
.then((response) => {
|
||||
res.statusCode = 200;
|
||||
if (hasDocument) {
|
||||
res.setHeader(
|
||||
"Content-disposition",
|
||||
"attachment; filename=" +
|
||||
response.headers["content-disposition"].split(
|
||||
"filename="
|
||||
)[1]
|
||||
);
|
||||
res.end(response.data);
|
||||
} else {
|
||||
res.setHeader("Content-Type", "application/json");
|
||||
// res.setHeader("Cache-Control", "max-age=1800000");
|
||||
res.end(JSON.stringify(response.data));
|
||||
}
|
||||
resolve();
|
||||
})
|
||||
.catch((error) => {
|
||||
console.log("proxy response error", error);
|
||||
//res.json(error);
|
||||
res.status(405).end();
|
||||
return resolve();
|
||||
});
|
||||
});
|
||||
} else {
|
||||
res.status(405).end();
|
||||
return resolve();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -70,6 +70,9 @@ const Home = (props) => {
|
||||
props.currentView.caseReference.appealType
|
||||
}
|
||||
incidentid={props.currentView.caseReference.incidentid}
|
||||
representationsObj={
|
||||
props.searchResultsObj.representationsObj
|
||||
}
|
||||
/>
|
||||
</div>
|
||||
<Footer footerLinks={footerLinks} />
|
||||
|
||||
@@ -0,0 +1,91 @@
|
||||
import _ from "lodash";
|
||||
import { useState, useEffect, useRef } from "react";
|
||||
import Head from "next/head";
|
||||
import Header from "../components/header";
|
||||
import ServiceBanner from "../components/servicebanner";
|
||||
import CookieBanner from "../components/cookieBanner";
|
||||
import Breadcrumbs from "../components/breadcrumbs";
|
||||
import Main from "../components/main";
|
||||
import Footer from "../components/footer";
|
||||
import Errorpage from "../components/errorpage";
|
||||
import styles from "../styles/Home.module.css";
|
||||
import { useSelector, shallowEqual, connect } from "react-redux";
|
||||
import { wrapper } from "../store/store";
|
||||
import { useRouter } from "next/router";
|
||||
import useTranslation from "next-translate/useTranslation";
|
||||
import { getIncidents } from "../actions";
|
||||
import { parseCookies } from "nookies";
|
||||
import CookiePolicy from "../components/cookiePolicy";
|
||||
|
||||
const CookieDetails = (props) => {
|
||||
const { footerLinks, pages, showLogin } = props;
|
||||
let { t, lang } = useTranslation();
|
||||
|
||||
const router = useRouter();
|
||||
const { locale } = router;
|
||||
|
||||
return (
|
||||
<div>
|
||||
<Head>
|
||||
<title>{t("common:service-name")}</title>
|
||||
{/* Language by default is EN, if multilingual site this will need updated */}
|
||||
<meta
|
||||
key="og:locale"
|
||||
property="og:locale"
|
||||
content={router.locale}
|
||||
/>
|
||||
{/* If they have a Twitter Handle, include the meta details below */}
|
||||
<meta
|
||||
key="og:site_name"
|
||||
property="og:site_name"
|
||||
content={t("common:service-name")}
|
||||
/>
|
||||
<meta
|
||||
key="twitter:site"
|
||||
property="twitter:site"
|
||||
content="@UKGovWales"
|
||||
/>
|
||||
|
||||
<meta
|
||||
name="description"
|
||||
content={t("common:service-description")}
|
||||
/>
|
||||
<meta
|
||||
property="og:site_name"
|
||||
content={t("common:gov-wales-label")}
|
||||
/>
|
||||
<meta property="og:type" content="website" />
|
||||
<meta property="og:url" content={t("common:gov-wales-link")} />
|
||||
<meta
|
||||
property="og:image"
|
||||
content="https://gov.wales/themes/custom/govwales/images/content/og-global-1200.png"
|
||||
/>
|
||||
<meta name="twitter:card" content="summary" />
|
||||
<meta
|
||||
name="twitter:title"
|
||||
content={t("common:gov-wales-label")}
|
||||
/>
|
||||
<meta
|
||||
name="twitter:url"
|
||||
content={t("common:gov-wales-link") + router.pathname}
|
||||
/>
|
||||
<meta
|
||||
name="twitter:image"
|
||||
content="https://gov.wales/themes/custom/govwales/images/content/og-global-120.png"
|
||||
/>
|
||||
</Head>
|
||||
<div id="page_wrapper">
|
||||
<CookieBanner />
|
||||
<Header courseName="Appeals Casework Portal" />
|
||||
<div className="govuk-width-container">
|
||||
<Breadcrumbs />
|
||||
<ServiceBanner />
|
||||
<CookiePolicy />
|
||||
</div>
|
||||
<Footer footerLinks={footerLinks} />
|
||||
</div>
|
||||
</div>
|
||||
);
|
||||
};
|
||||
|
||||
export default CookieDetails; //connect(mapStateToProps)(Home);
|
||||
@@ -24,11 +24,7 @@ import {
|
||||
setSearchDetails,
|
||||
getSearchResultsObj,
|
||||
} from "../store/searchOutput/action";
|
||||
import {
|
||||
getBasicDNSSearch,
|
||||
getBasicSearchDetails,
|
||||
getSASToken,
|
||||
} from "../actions";
|
||||
import { getBasicDNSSearch, getBasicSearchDetails, getToken } from "../actions";
|
||||
|
||||
const Home = (props) => {
|
||||
const { footerLinks, pages } = props;
|
||||
@@ -127,7 +123,8 @@ export const getServerSideProps = wrapper.getServerSideProps(
|
||||
async ({ query, req, res }) => {
|
||||
console.log("query-", query);
|
||||
|
||||
const token = await getSASToken();
|
||||
let token = await getToken();
|
||||
token = token.access_token;
|
||||
|
||||
let searchResultsObj = await getBasicDNSSearch(token);
|
||||
searchResultsObj =
|
||||
|
||||
@@ -32,6 +32,7 @@ const CookieManagement = (props) => {
|
||||
<Header courseName="Appeals Casework Portal" />
|
||||
<div className="govuk-width-container">
|
||||
<Breadcrumbs />
|
||||
<ServiceBanner />
|
||||
<CookieManagementMain />
|
||||
</div>
|
||||
<Footer footerLinks={footerLinks} />
|
||||
|
||||
@@ -28,7 +28,7 @@ import {
|
||||
getLPA,
|
||||
updateCase,
|
||||
createCase,
|
||||
getSASToken,
|
||||
getToken,
|
||||
} from "../../actions";
|
||||
import { setLPA } from "../../store/lpa/action";
|
||||
|
||||
@@ -77,7 +77,8 @@ const Home = (props) => {
|
||||
export const getServerSideProps = wrapper.getServerSideProps(
|
||||
(store) =>
|
||||
async ({ query, req, res }) => {
|
||||
const token = await getSASToken();
|
||||
let token = await getToken();
|
||||
token = token.access_token;
|
||||
|
||||
const [appealTypeData, lpaData] = await Promise.all([
|
||||
await getAppealsTypes(token),
|
||||
|
||||
@@ -22,7 +22,7 @@ import {
|
||||
setSearchResults,
|
||||
setSearchDetails,
|
||||
} from "../../store/searchOutput/action";
|
||||
import { getAdvancedSearch, getSASToken } from "../../actions";
|
||||
import { getAdvancedSearch, getToken } from "../../actions";
|
||||
|
||||
const Home = (props) => {
|
||||
const { footerLinks, pages } = props;
|
||||
@@ -62,7 +62,8 @@ export const getServerSideProps = wrapper.getServerSideProps(
|
||||
console.log("query-", query);
|
||||
//console.log("search array:", Object.entries(query));
|
||||
|
||||
const token = await getSASToken();
|
||||
let token = await getToken();
|
||||
token = token.access_token;
|
||||
|
||||
const searchResultsObj = await getAdvancedSearch(token, query);
|
||||
const searchDetailsObj = await getSearchDetails(
|
||||
|
||||
+20
-1
@@ -16,7 +16,7 @@ import useTranslation from "next-translate/useTranslation";
|
||||
import Case from "../../components/case";
|
||||
|
||||
const Home = (props) => {
|
||||
const { footerLinks, pages } = props;
|
||||
const { footerLinks, pages, showRepresentations } = props;
|
||||
let { t, lang } = useTranslation();
|
||||
|
||||
const router = useRouter();
|
||||
@@ -73,6 +73,10 @@ const Home = (props) => {
|
||||
props.currentView.caseReference.appealType
|
||||
}
|
||||
incidentid={props.currentView.caseReference.incidentid}
|
||||
representationsObj={
|
||||
props.searchResultsObj.representationsObj
|
||||
}
|
||||
showRepresentations={showRepresentations}
|
||||
/>
|
||||
</div>
|
||||
<Footer footerLinks={footerLinks} />
|
||||
@@ -81,6 +85,21 @@ const Home = (props) => {
|
||||
);
|
||||
};
|
||||
|
||||
export const getServerSideProps = wrapper.getServerSideProps(
|
||||
(store) => async (ctx) => {
|
||||
const { query, req, res } = ctx;
|
||||
|
||||
const showRepresentationsCheck =
|
||||
process.env.SHOWREPRESENTATIONS || false;
|
||||
|
||||
console.log("Show representation module: ", showRepresentationsCheck);
|
||||
|
||||
return {
|
||||
props: { showRepresentations: showRepresentationsCheck },
|
||||
};
|
||||
}
|
||||
);
|
||||
|
||||
const mapStateToProps = (state) => {
|
||||
//console.log(state);
|
||||
|
||||
|
||||
@@ -35,7 +35,7 @@ import {
|
||||
setAwaitingSubmissionDetails,
|
||||
} from "../../store/awaitingSubmission/action";
|
||||
import {
|
||||
getSASToken,
|
||||
getToken,
|
||||
getPersonalAccount,
|
||||
getMyCases,
|
||||
getMyRepresentations,
|
||||
@@ -152,7 +152,10 @@ export const getServerSideProps = wrapper.getServerSideProps(
|
||||
|
||||
const { cookies } = req;
|
||||
|
||||
const token = await getSASToken();
|
||||
console.log("the cookoies", cookies);
|
||||
|
||||
let token = await getToken();
|
||||
token = token.access_token;
|
||||
|
||||
let loggedInUser = cookies.pinsUser;
|
||||
|
||||
@@ -171,6 +174,7 @@ export const getServerSideProps = wrapper.getServerSideProps(
|
||||
]);
|
||||
|
||||
//const cookiesMaker = nookies.get(ctx)
|
||||
console.log(accountDetails);
|
||||
const [
|
||||
myCasesDetails,
|
||||
myRepresentationsDetails,
|
||||
@@ -199,7 +203,7 @@ export const getServerSideProps = wrapper.getServerSideProps(
|
||||
);
|
||||
|
||||
const getDetails = (token, resultsObj, detailsType) => {
|
||||
//console.log(resultsObj);
|
||||
console.log(resultsObj);
|
||||
let detailsArr = [];
|
||||
resultsObj = resultsObj.value;
|
||||
const detailsObj = resultsObj.map((searchDetail, index) => {
|
||||
|
||||
@@ -39,7 +39,7 @@ import {
|
||||
getSearchDocumentHistory,
|
||||
getWatchedCases,
|
||||
getPortalModuleDetails,
|
||||
getSASToken,
|
||||
getToken,
|
||||
} from "../../actions";
|
||||
|
||||
const Home = (props) => {
|
||||
@@ -82,7 +82,8 @@ export const getServerSideProps = wrapper.getServerSideProps(
|
||||
|
||||
const { cookies } = req;
|
||||
|
||||
const token = await getSASToken();
|
||||
let token = await getToken();
|
||||
token = token.access_token;
|
||||
|
||||
let loggedInUser = cookies.pinsUser;
|
||||
|
||||
|
||||
@@ -28,7 +28,7 @@ import {
|
||||
} from "../../store/appealType/action";
|
||||
import { setForm, getFormObj } from "../../store/formData/action";
|
||||
import {
|
||||
getSASToken,
|
||||
getToken,
|
||||
getFormData,
|
||||
getAppealsTypes,
|
||||
getMandatoryFields,
|
||||
@@ -331,7 +331,8 @@ export const getServerSideProps = wrapper.getServerSideProps(
|
||||
console.log("the query", query);
|
||||
let loggedInUser = cookies.pinsUser;
|
||||
|
||||
const token = await getSASToken();
|
||||
let token = await getToken();
|
||||
token = token.access_token;
|
||||
const [
|
||||
caseReferenceData,
|
||||
appealTypeData,
|
||||
|
||||
@@ -34,7 +34,7 @@ import {
|
||||
getLPA,
|
||||
updateCase,
|
||||
createCase,
|
||||
getSASToken,
|
||||
getToken,
|
||||
} from "../../actions";
|
||||
import { setLPA } from "../../store/lpa/action";
|
||||
|
||||
@@ -150,7 +150,8 @@ export const getServerSideProps = wrapper.getServerSideProps(
|
||||
|
||||
let loggedInUser = cookies.pinsUser;
|
||||
|
||||
const token = await getSASToken();
|
||||
let token = await getToken();
|
||||
token = token.access_token;
|
||||
|
||||
const [appealTypeData, lpaData, caseData] = await Promise.all([
|
||||
await getAppealsTypes(token),
|
||||
|
||||
@@ -42,7 +42,8 @@ const Home = (props) => {
|
||||
|
||||
// export const getServerSideProps = wrapper.getServerSideProps(
|
||||
// async ({ locale, store, req, res }) => {
|
||||
// const token = await getToken();
|
||||
// let token = await getToken()
|
||||
// token = token.access_token;
|
||||
// let accessToken = token.access_token;
|
||||
|
||||
// const apiRoot = process.browser ? window.API_ROOT : process.env.API_ROOT;
|
||||
|
||||
@@ -0,0 +1,91 @@
|
||||
import _ from "lodash";
|
||||
import { useState, useEffect, useRef } from "react";
|
||||
import Head from "next/head";
|
||||
import Header from "../components/header";
|
||||
import ServiceBanner from "../components/servicebanner";
|
||||
import CookieBanner from "../components/cookieBanner";
|
||||
import Breadcrumbs from "../components/breadcrumbs";
|
||||
import Main from "../components/main";
|
||||
import Footer from "../components/footer";
|
||||
import Errorpage from "../components/errorpage";
|
||||
import styles from "../styles/Home.module.css";
|
||||
import { useSelector, shallowEqual, connect } from "react-redux";
|
||||
import { wrapper } from "../store/store";
|
||||
import { useRouter } from "next/router";
|
||||
import useTranslation from "next-translate/useTranslation";
|
||||
import { getIncidents } from "../actions";
|
||||
import { parseCookies } from "nookies";
|
||||
import PrivacyStatement from "../components/privacy";
|
||||
|
||||
const Privacy = (props) => {
|
||||
const { footerLinks, pages, showLogin } = props;
|
||||
let { t, lang } = useTranslation();
|
||||
|
||||
const router = useRouter();
|
||||
const { locale } = router;
|
||||
|
||||
return (
|
||||
<div>
|
||||
<Head>
|
||||
<title>{t("common:service-name")}</title>
|
||||
{/* Language by default is EN, if multilingual site this will need updated */}
|
||||
<meta
|
||||
key="og:locale"
|
||||
property="og:locale"
|
||||
content={router.locale}
|
||||
/>
|
||||
{/* If they have a Twitter Handle, include the meta details below */}
|
||||
<meta
|
||||
key="og:site_name"
|
||||
property="og:site_name"
|
||||
content={t("common:service-name")}
|
||||
/>
|
||||
<meta
|
||||
key="twitter:site"
|
||||
property="twitter:site"
|
||||
content="@UKGovWales"
|
||||
/>
|
||||
|
||||
<meta
|
||||
name="description"
|
||||
content={t("common:service-description")}
|
||||
/>
|
||||
<meta
|
||||
property="og:site_name"
|
||||
content={t("common:gov-wales-label")}
|
||||
/>
|
||||
<meta property="og:type" content="website" />
|
||||
<meta property="og:url" content={t("common:gov-wales-link")} />
|
||||
<meta
|
||||
property="og:image"
|
||||
content="https://gov.wales/themes/custom/govwales/images/content/og-global-1200.png"
|
||||
/>
|
||||
<meta name="twitter:card" content="summary" />
|
||||
<meta
|
||||
name="twitter:title"
|
||||
content={t("common:gov-wales-label")}
|
||||
/>
|
||||
<meta
|
||||
name="twitter:url"
|
||||
content={t("common:gov-wales-link") + router.pathname}
|
||||
/>
|
||||
<meta
|
||||
name="twitter:image"
|
||||
content="https://gov.wales/themes/custom/govwales/images/content/og-global-120.png"
|
||||
/>
|
||||
</Head>
|
||||
<div id="page_wrapper">
|
||||
<CookieBanner />
|
||||
<Header courseName="Appeals Casework Portal" />
|
||||
<div className="govuk-width-container">
|
||||
<Breadcrumbs />
|
||||
<ServiceBanner />
|
||||
<PrivacyStatement />
|
||||
</div>
|
||||
<Footer footerLinks={footerLinks} />
|
||||
</div>
|
||||
</div>
|
||||
);
|
||||
};
|
||||
|
||||
export default Privacy; //connect(mapStateToProps)(Home);
|
||||
@@ -21,7 +21,7 @@ import {
|
||||
setSearchDetails,
|
||||
getSearchResultsObj,
|
||||
} from "../store/searchOutput/action";
|
||||
import { getBasicSearch, getBasicSearchDetails, getSASToken } from "../actions";
|
||||
import { getBasicSearch, getBasicSearchDetails, getToken } from "../actions";
|
||||
import { getSearchDetails } from "../components/utils";
|
||||
|
||||
const Home = (props) => {
|
||||
@@ -121,7 +121,8 @@ export const getServerSideProps = wrapper.getServerSideProps(
|
||||
async ({ query, req, res }) => {
|
||||
console.log("query-", query);
|
||||
|
||||
const token = await getSASToken();
|
||||
let token = await getToken();
|
||||
token = token.access_token;
|
||||
|
||||
let searchResultsObj = await getBasicSearch(token, query.q);
|
||||
|
||||
|
||||
@@ -0,0 +1,91 @@
|
||||
import _ from "lodash";
|
||||
import { useState, useEffect, useRef } from "react";
|
||||
import Head from "next/head";
|
||||
import Header from "../components/header";
|
||||
import ServiceBanner from "../components/servicebanner";
|
||||
import CookieBanner from "../components/cookieBanner";
|
||||
import Breadcrumbs from "../components/breadcrumbs";
|
||||
import Main from "../components/main";
|
||||
import Footer from "../components/footer";
|
||||
import Errorpage from "../components/errorpage";
|
||||
import styles from "../styles/Home.module.css";
|
||||
import { useSelector, shallowEqual, connect } from "react-redux";
|
||||
import { wrapper } from "../store/store";
|
||||
import { useRouter } from "next/router";
|
||||
import useTranslation from "next-translate/useTranslation";
|
||||
import { getIncidents } from "../actions";
|
||||
import { parseCookies } from "nookies";
|
||||
import TermsAndConditionsStatement from "../components/tandc";
|
||||
|
||||
const TandC = (props) => {
|
||||
const { footerLinks, pages, showLogin } = props;
|
||||
let { t, lang } = useTranslation();
|
||||
|
||||
const router = useRouter();
|
||||
const { locale } = router;
|
||||
|
||||
return (
|
||||
<div>
|
||||
<Head>
|
||||
<title>{t("common:service-name")}</title>
|
||||
{/* Language by default is EN, if multilingual site this will need updated */}
|
||||
<meta
|
||||
key="og:locale"
|
||||
property="og:locale"
|
||||
content={router.locale}
|
||||
/>
|
||||
{/* If they have a Twitter Handle, include the meta details below */}
|
||||
<meta
|
||||
key="og:site_name"
|
||||
property="og:site_name"
|
||||
content={t("common:service-name")}
|
||||
/>
|
||||
<meta
|
||||
key="twitter:site"
|
||||
property="twitter:site"
|
||||
content="@UKGovWales"
|
||||
/>
|
||||
|
||||
<meta
|
||||
name="description"
|
||||
content={t("common:service-description")}
|
||||
/>
|
||||
<meta
|
||||
property="og:site_name"
|
||||
content={t("common:gov-wales-label")}
|
||||
/>
|
||||
<meta property="og:type" content="website" />
|
||||
<meta property="og:url" content={t("common:gov-wales-link")} />
|
||||
<meta
|
||||
property="og:image"
|
||||
content="https://gov.wales/themes/custom/govwales/images/content/og-global-1200.png"
|
||||
/>
|
||||
<meta name="twitter:card" content="summary" />
|
||||
<meta
|
||||
name="twitter:title"
|
||||
content={t("common:gov-wales-label")}
|
||||
/>
|
||||
<meta
|
||||
name="twitter:url"
|
||||
content={t("common:gov-wales-link") + router.pathname}
|
||||
/>
|
||||
<meta
|
||||
name="twitter:image"
|
||||
content="https://gov.wales/themes/custom/govwales/images/content/og-global-120.png"
|
||||
/>
|
||||
</Head>
|
||||
<div id="page_wrapper">
|
||||
<CookieBanner />
|
||||
<Header courseName="Appeals Casework Portal" />
|
||||
<div className="govuk-width-container">
|
||||
<Breadcrumbs />
|
||||
<ServiceBanner />
|
||||
<TermsAndConditionsStatement />
|
||||
</div>
|
||||
<Footer footerLinks={footerLinks} />
|
||||
</div>
|
||||
</div>
|
||||
);
|
||||
};
|
||||
|
||||
export default TandC; //connect(mapStateToProps)(Home);
|
||||
Reference in New Issue
Block a user