Removed proxy and added api calls, has gov gateway auth

This commit is contained in:
2022-01-20 10:56:26 +00:00
parent 6f37064eba
commit 5a536e158c
127 changed files with 5829 additions and 3097 deletions
+13 -35
View File
@@ -1,36 +1,18 @@
import _ from "lodash";
import { useState } from "react";
import Head from "next/head";
import Header from "../../components/header";
import Banner from "../../components/banner";
import CookieBanner from "../../components/cookieBanner";
import Breadcrumbs from "../../components/breadcrumbs";
import Search from "../../components/search";
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 Head from "next/head";
import { useRouter } from "next/router";
import { connect } from "react-redux";
import { getAppealsTypes, getLPA } from "../../actions";
import Breadcrumbs from "../../components/breadcrumbs";
import CookieBanner from "../../components/cookieBanner";
import CRMError from "../../components/crmError";
import {
setAppealType,
setAppealTypeTitle,
setAppealTypeID,
setAppealLPA,
getAppealTypeObj,
} from "../../store/appealType/action";
import {
getAppealsTypes,
getLPA,
updateCase,
createCase,
getToken,
} from "../../actions";
import Footer from "../../components/footer";
import Header from "../../components/header";
import Search from "../../components/search";
import { setAppealType } from "../../store/appealType/action";
import { setLPA } from "../../store/lpa/action";
import { wrapper } from "../../store/store";
const Home = (props) => {
const { footerLinks, pages } = props;
@@ -40,7 +22,6 @@ const Home = (props) => {
const { locale } = router;
const { appealtypes } = router.query;
console.log(props, props.LPAData);
var hasError =
_.has(props.LPAData.LPAData, "errorCode") ||
_.has(props.appealType.appealType, "errorCode")
@@ -77,12 +58,9 @@ const Home = (props) => {
export const getServerSideProps = wrapper.getServerSideProps(
(store) =>
async ({ query, req, res }) => {
let token = await getToken();
token = token.access_token;
const [appealTypeData, lpaData] = await Promise.all([
await getAppealsTypes(token),
await getLPA(token),
await getAppealsTypes(),
await getLPA(),
]);
store.dispatch(setAppealType(appealTypeData));
+70 -29
View File
@@ -1,31 +1,33 @@
import _ from "lodash";
import Head from "next/head";
import Header from "../../components/header";
import Banner from "../../components/banner";
import CookieBanner from "../../components/cookieBanner";
import Breadcrumbs from "../../components/breadcrumbs";
import SearchResults from "../../components/searchresults";
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 jsonpath from "jsonpath";
import data from "../../data/collections.json";
import { getSearchDetails } from "../../components/utils";
import { setSearch, getSearchObj } from "../../store/search/action";
import Head from "next/head";
import { useRouter } from "next/router";
import { connect } from "react-redux";
import {
getAdvancedSearch,
getPortalModuleDetails,
getWatchedCases,
} from "../../actions";
import Breadcrumbs from "../../components/breadcrumbs";
import CookieBanner from "../../components/cookieBanner";
import Footer from "../../components/footer";
import Header from "../../components/header";
import SearchResults from "../../components/searchresults";
import {
getFormCollectionByID,
getSearchDetails,
} from "../../components/utils";
import {
setSearchResults,
setSearchDetails,
setSearchResults,
} from "../../store/searchOutput/action";
import { getAdvancedSearch, getToken } from "../../actions";
import { wrapper } from "../../store/store";
import {
setWatchedCases,
setWatchedCasesDetails,
} from "../../store/watchedCases/action";
const Home = (props) => {
const { footerLinks, pages } = props;
const { footerLinks, pages, watchedCases } = props;
let { t, lang } = useTranslation();
const router = useRouter();
@@ -48,6 +50,8 @@ const Home = (props) => {
searchString={props.search.searchString}
searchResultsObj={props.searchResultsObj}
advancedSearch={true}
watchedCases={watchedCases}
myportal={true}
/>
</div>
<Footer footerLinks={footerLinks} />
@@ -61,21 +65,58 @@ export const getServerSideProps = wrapper.getServerSideProps(
async ({ query, req, res }) => {
console.log("query-", query);
//console.log("search array:", Object.entries(query));
const { cookies } = req;
let token = await getToken();
token = token.access_token;
let loggedInUser = cookies.pinsUser;
const searchResultsObj = await getAdvancedSearch(token, query);
const searchDetailsObj = await getSearchDetails(
token,
searchResultsObj
);
const [searchResultsObj, watchedCases] = await Promise.all([
await getAdvancedSearch(query),
await getWatchedCases(loggedInUser),
]);
const [searchDetailsObj, watchedCasesDetails] = await Promise.all([
await getSearchDetails(searchResultsObj),
await getDetails(watchedCases, "myWatchedCases"),
]);
store.dispatch(setSearchResults(searchResultsObj));
store.dispatch(setSearchDetails(searchDetailsObj));
store.dispatch(setWatchedCases(watchedCases));
store.dispatch(setWatchedCasesDetails(watchedCasesDetails));
}
);
const getDetails = (resultsObj, detailsType) => {
//console.log(resultsObj);
let detailsArr = [];
resultsObj = resultsObj.value;
const detailsObj = resultsObj.map((searchDetail, index) => {
if (searchDetail.pinswg_appealcasetype == null) {
console.log(
detailsType != "myWatchedCases"
? searchDetail.ticketnumber
: searchDetail[
"_pinswg_watchedcase_value@OData.Community.Display.V1.FormattedValue"
]
);
} else {
detailsArr.push(
getPortalModuleDetails(
getFormCollectionByID(searchDetail.pinswg_appealcasetype)
.LogicalCollectionName,
detailsType != "myWatchedCases"
? searchDetail.ticketnumber
: searchDetail[
"_pinswg_watchedcase_value@OData.Community.Display.V1.FormattedValue"
]
)
);
}
});
//console.log(detailsArr);
return Promise.all(detailsArr);
};
const mapStateToProps = (state) => {
return {
currentView: state.currentView,
+18 -25
View File
@@ -1,19 +1,12 @@
import _ from "lodash";
import Head from "next/head";
import Header from "../../components/header";
import Banner from "../../components/banner";
import CookieBanner from "../../components/cookieBanner";
import Breadcrumbs from "../../components/breadcrumbs";
import CaseSummary from "../../components/case";
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 Head from "next/head";
import { useRouter } from "next/router";
import { connect } from "react-redux";
import Breadcrumbs from "../../components/breadcrumbs";
import Case from "../../components/case";
import CookieBanner from "../../components/cookieBanner";
import Footer from "../../components/footer";
import Header from "../../components/header";
const Home = (props) => {
const { footerLinks, pages, showRepresentations } = props;
@@ -85,20 +78,20 @@ const Home = (props) => {
);
};
export const getServerSideProps = wrapper.getServerSideProps(
(store) => async (ctx) => {
const { query, req, res } = ctx;
// export const getServerSideProps = wrapper.getServerSideProps(
// (store) => async (ctx) => {
// const { query, req, res } = ctx;
const showRepresentationsCheck =
process.env.SHOWREPRESENTATIONS || false;
// const showRepresentationsCheck =
// process.env.SHOWREPRESENTATIONS || false;
console.log("Show representation module: ", showRepresentationsCheck);
// console.log("Show representation module: ", showRepresentationsCheck);
return {
props: { showRepresentations: showRepresentationsCheck },
};
}
);
// return {
// props: { showRepresentations: showRepresentationsCheck },
// };
// }
// );
const mapStateToProps = (state) => {
//console.log(state);
+49
View File
@@ -0,0 +1,49 @@
import useTranslation from "next-translate/useTranslation";
import Head from "next/head";
import Link from "next/link";
import CookieBanner from "../../components/cookieBanner";
import Footer from "../../components/footer";
import Header from "../../components/header";
function Error({ statusCode }, props) {
let { t, lang } = useTranslation();
const { footerLinks, pages } = props;
return (
<div>
<Head>
<title>
{t("myportal:page-title")} - {t("common:service-name")}
</title>
</Head>
<div id="page_wrapper">
<CookieBanner />
<Header courseName={t("common:service-name")} />
<div className="govuk-width-container govuk-!-padding-bottom-9">
<main className="govuk-main-wrapper govuk-!-padding-top-9 govuk-!-padding-bottom-9">
<div className="govuk-grid-row">
<div className="govuk-grid-column-two-thirds ">
<h1>{t("common:error-page-title")}</h1>
<p className="govuk-body">
A problem occured when trying to login
</p>
<Link href="/">
<a>{t("common:404-not-found-link")}</a>
</Link>
</div>
</div>
</main>
</div>
<Footer footerLinks={footerLinks} />
</div>
</div>
);
}
Error.getInitialProps = ({ res, err }) => {
const statusCode = res ? res.statusCode : err ? err.statusCode : 404;
console.log(res, err);
return { statusCode };
};
export default Error;
+86 -69
View File
@@ -1,48 +1,39 @@
import _ from "lodash";
import jsonpath from "jsonpath";
import Head from "next/head";
import Header from "../../components/header";
import Banner from "../../components/banner";
import CookieBanner from "../../components/cookieBanner";
import Breadcrumbs from "../../components/breadcrumbs";
import MyPortal from "../../components/myportal";
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 data from "../../data/collections.json";
import nookies from "nookies";
import Head from "next/head";
import { useRouter } from "next/router";
import { connect } from "react-redux";
import {
getAwaitingSubmission,
getMyCases,
getMyRepresentations,
getPersonalAccount,
getPortalModuleDetails,
getWatchedCases,
} from "../../actions";
import { getProviderConfig } from "../../actions/govgateway";
import Breadcrumbs from "../../components/breadcrumbs";
import CookieBanner from "../../components/cookieBanner";
import Footer from "../../components/footer";
import Header from "../../components/header";
import MyPortal from "../../components/myportal";
import { getFormCollectionByID } from "../../components/utils";
import {
setLoggedInUserId,
setAccountDetails,
setLoggedInUserId,
} from "../../store/accountDetails/action";
import { setAwaitingSubmission } from "../../store/awaitingSubmission/action";
import { getGovGatewayConfig } from "../../store/govgateway/action";
import { setMyCases, setMyCasesDetails } from "../../store/myCases/action";
import {
setMyRepresentations,
setMyRepresentationsDetails,
} from "../../store/myRepresentations/action";
import { wrapper } from "../../store/store";
import {
setWatchedCases,
setWatchedCasesDetails,
} from "../../store/watchedCases/action";
import {
setAwaitingSubmission,
setAwaitingSubmissionDetails,
} from "../../store/awaitingSubmission/action";
import {
getToken,
getPersonalAccount,
getMyCases,
getMyRepresentations,
getWatchedCases,
getAwaitingSubmission,
getPortalModuleDetails,
} from "../../actions";
const Home = (props) => {
const {
@@ -52,6 +43,8 @@ const Home = (props) => {
myRepresentations,
watchedCases,
awaitingSubmission,
accountDetails,
govGateway,
} = props;
let { t, lang } = useTranslation();
@@ -137,6 +130,8 @@ const Home = (props) => {
myRepresentations={myRepresentations}
watchedCases={watchedCases}
awaitingSubmission={awaitingSubmission}
accountDetails={accountDetails}
ggLogout={govGateway.config.end_session_endpoint}
/>
</div>
<Footer footerLinks={footerLinks} />
@@ -148,17 +143,24 @@ const Home = (props) => {
export const getServerSideProps = wrapper.getServerSideProps(
(store) => async (ctx) => {
const { query, req, res } = ctx;
console.log("the query", query);
console.log("The query", query);
const { cookies } = req;
console.log("the cookoies", cookies);
let token = await getToken();
token = token.access_token;
let loggedInUser = cookies.pinsUser;
let providerConfig = await getProviderConfig();
// console.log(
// "logout endpoint: ",
// providerConfig.end_session_endpoint,
// "\n",
// "redirect:",
// process.env.GG_REDIRECT_URI
//);
store.dispatch(getGovGatewayConfig(providerConfig));
const [
accountDetails,
myCases,
@@ -166,44 +168,60 @@ export const getServerSideProps = wrapper.getServerSideProps(
watchedCases,
awaitingSubmission,
] = await Promise.all([
await getPersonalAccount(token, loggedInUser),
await getMyCases(token, loggedInUser),
await getMyRepresentations(token, loggedInUser),
await getWatchedCases(token, loggedInUser),
await getAwaitingSubmission(token),
await getPersonalAccount(loggedInUser),
await getMyCases(loggedInUser),
await getMyRepresentations(loggedInUser),
await getWatchedCases(loggedInUser),
await getAwaitingSubmission(),
]);
//const cookiesMaker = nookies.get(ctx)
console.log(accountDetails);
const [
myCasesDetails,
myRepresentationsDetails,
watchedCasesDetails,
// awaitingSubmissionDetails,
] = await Promise.all([
await getDetails(token, myCases, "myCases"),
await getDetails(token, myRepresentations, "myRepresentations"),
await getDetails(token, watchedCases, "myWatchedCases"),
// await getDetails(awaitingSubmission),
]);
store.dispatch(setAccountDetails(accountDetails));
store.dispatch(setLoggedInUserId(loggedInUser));
store.dispatch(setMyCases(myCases));
store.dispatch(setMyCasesDetails(myCasesDetails));
store.dispatch(setMyRepresentations(myRepresentations));
store.dispatch(setMyRepresentationsDetails(myRepresentationsDetails));
store.dispatch(setWatchedCases(watchedCases));
store.dispatch(setWatchedCasesDetails(watchedCasesDetails));
store.dispatch(setAwaitingSubmission(awaitingSubmission));
// store.dispatch(
// setAwaitingSubmissionDetails(awaitingSubmissionDetails)
// console.log(
// "acc details:",
// accountDetails,
// _.has(accountDetails, "errorCode") != false
// );
if (_.has(accountDetails, "errorCode") != false) {
return {
redirect: {
destination: "/myportal/error",
permanent: false,
},
};
} else {
const [
myCasesDetails,
myRepresentationsDetails,
watchedCasesDetails,
// awaitingSubmissionDetails,
] = await Promise.all([
await getDetails(myCases, "myCases"),
await getDetails(myRepresentations, "myRepresentations"),
await getDetails(watchedCases, "myWatchedCases"),
//await getDetails(awaitingSubmission),
]);
store.dispatch(setAccountDetails(accountDetails));
store.dispatch(setLoggedInUserId(loggedInUser));
store.dispatch(setMyCases(myCases));
store.dispatch(setMyCasesDetails(myCasesDetails));
store.dispatch(setMyRepresentations(myRepresentations));
store.dispatch(
setMyRepresentationsDetails(myRepresentationsDetails)
);
store.dispatch(setWatchedCases(watchedCases));
store.dispatch(setWatchedCasesDetails(watchedCasesDetails));
store.dispatch(setAwaitingSubmission(awaitingSubmission));
// store.dispatch(
// setAwaitingSubmissionDetails(awaitingSubmissionDetails)
// );
}
}
);
const getDetails = (token, resultsObj, detailsType) => {
console.log(resultsObj);
const getDetails = (resultsObj, detailsType) => {
console.log(detailsType);
let detailsArr = [];
resultsObj = resultsObj.value;
const detailsObj = resultsObj.map((searchDetail, index) => {
@@ -218,7 +236,6 @@ const getDetails = (token, resultsObj, detailsType) => {
} else {
detailsArr.push(
getPortalModuleDetails(
token,
getFormCollectionByID(searchDetail.pinswg_appealcasetype)
.LogicalCollectionName,
detailsType != "myWatchedCases"
@@ -230,7 +247,6 @@ const getDetails = (token, resultsObj, detailsType) => {
);
}
});
//console.log(detailsArr);
return Promise.all(detailsArr);
};
@@ -249,6 +265,7 @@ const mapStateToProps = (state) => {
watchedCases: state.watchedCases,
myRepresentations: state.myRepresentations,
awaitingSubmission: state.awaitingSubmission,
govGateway: state.govGateway,
};
};
+7 -14
View File
@@ -1,18 +1,11 @@
import _ from "lodash";
import Head from "next/head";
import Header from "../../components/header";
import Banner from "../../components/banner";
import CookieBanner from "../../components/cookieBanner";
import Breadcrumbs from "../../components/breadcrumbs";
import CaseSummary from "../../components/case";
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 Head from "next/head";
import { useRouter } from "next/router";
import { connect } from "react-redux";
import Breadcrumbs from "../../components/breadcrumbs";
import CookieBanner from "../../components/cookieBanner";
import Footer from "../../components/footer";
import Header from "../../components/header";
import Case from "../../components/representation";
const Home = (props) => {
+23 -42
View File
@@ -1,46 +1,31 @@
import _ from "lodash";
import Head from "next/head";
import Header from "../../components/header";
import Banner from "../../components/banner";
import CookieBanner from "../../components/cookieBanner";
import Breadcrumbs from "../../components/breadcrumbs";
import SearchResults from "../../components/searchresults";
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 jsonpath from "jsonpath";
import data from "../../data/collections.json";
import Head from "next/head";
import { useRouter } from "next/router";
import { connect } from "react-redux";
import {
getBasicSearch,
getPortalModuleDetails,
getWatchedCases,
} from "../../actions";
import Breadcrumbs from "../../components/breadcrumbs";
import CookieBanner from "../../components/cookieBanner";
import Footer from "../../components/footer";
import Header from "../../components/header";
import SearchResults from "../../components/searchresults";
import {
getSearchDetails,
getFormCollectionByID,
getSearchDetails,
} from "../../components/utils";
import { setSearch, getSearchObj } from "../../store/search/action";
import { setSearch } from "../../store/search/action";
import {
setSearchResults,
setSearchDetails,
setDocumentDetails,
setDocumentHistory,
getSearchResultsObj,
setSearchResults,
} from "../../store/searchOutput/action";
import { wrapper } from "../../store/store";
import {
setWatchedCases,
setWatchedCasesDetails,
} from "../../store/watchedCases/action";
import {
getBasicSearch,
getBasicSearchDetails,
getSearchDocumentDetails,
getSearchDocumentHistory,
getWatchedCases,
getPortalModuleDetails,
getToken,
} from "../../actions";
const Home = (props) => {
const { footerLinks, pages, watchedCases } = props;
@@ -65,7 +50,7 @@ const Home = (props) => {
<SearchResults
searchString={props.search.searchString}
searchResultsObj={props.searchResultsObj}
myportal="true"
myportal={true}
watchedCases={watchedCases}
/>
</div>
@@ -82,14 +67,11 @@ export const getServerSideProps = wrapper.getServerSideProps(
const { cookies } = req;
let token = await getToken();
token = token.access_token;
let loggedInUser = cookies.pinsUser;
let [searchResultsObj, watchedCases] = await Promise.all([
await getBasicSearch(token, query.q),
await getWatchedCases(token, loggedInUser),
await getBasicSearch(query.q),
await getWatchedCases(loggedInUser),
]);
searchResultsObj =
@@ -104,8 +86,8 @@ export const getServerSideProps = wrapper.getServerSideProps(
//console.log("sssss", searchResultsObj);
const [searchDetailsObj, watchedCasesDetails] = await Promise.all([
await getSearchDetails(token, searchResultsObj),
await getDetails(token, watchedCases, "myWatchedCases"),
await getSearchDetails(searchResultsObj),
await getDetails(watchedCases, "myWatchedCases"),
]);
store.dispatch(setSearchResults(searchResultsObj));
@@ -116,7 +98,7 @@ export const getServerSideProps = wrapper.getServerSideProps(
}
);
const getDetails = (token, resultsObj, detailsType) => {
const getDetails = (resultsObj, detailsType) => {
//console.log(resultsObj);
let detailsArr = [];
resultsObj = resultsObj.value;
@@ -132,7 +114,6 @@ const getDetails = (token, resultsObj, detailsType) => {
} else {
detailsArr.push(
getPortalModuleDetails(
token,
getFormCollectionByID(searchDetail.pinswg_appealcasetype)
.LogicalCollectionName,
detailsType != "myWatchedCases"
+9 -22
View File
@@ -1,25 +1,12 @@
import _ from "lodash";
import Head from "next/head";
import Header from "../../components/header";
import Banner from "../../components/banner";
import CookieBanner from "../../components/cookieBanner";
import Breadcrumbs from "../../components/breadcrumbs";
import ViewAll from "../../components/myportal/viewall";
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 { setSearch, getSearchObj } from "../../store/search/action";
import {
setSearchResults,
getSearchResultsObj,
} from "../../store/searchOutput/action";
import { getBasicSearch } from "../../actions";
import Head from "next/head";
import { useRouter } from "next/router";
import { connect } from "react-redux";
import Breadcrumbs from "../../components/breadcrumbs";
import CookieBanner from "../../components/cookieBanner";
import Footer from "../../components/footer";
import Header from "../../components/header";
import ViewAll from "../../components/myportal/viewall";
const Home = (props) => {
const { footerLinks, pages } = props;
@@ -52,7 +39,7 @@ const Home = (props) => {
watchedCases={props.watchedCases}
myRepresentations={props.myRepresentations}
awaitingSubmission={props.awaitingSubmission}
myportal="true"
myportal={true}
/>
</div>
<Footer footerLinks={footerLinks} />