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 DNSSearchResults from "../components/dnssearchresults"; 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 Cookies from "cookies"; import { useRouter } from "next/router"; import useTranslation from "next-translate/useTranslation"; import jsonpath from "jsonpath"; import data from "../data/collections.json"; import { setSearch, getSearchObj } from "../store/search/action"; import { setSearchResults, setSearchDetails, getSearchResultsObj, } from "../store/searchOutput/action"; import { getBasicDNSSearch, getBasicSearchDetails, getSASToken, } from "../actions"; const Home = (props) => { const { footerLinks, pages } = props; let { t, lang } = useTranslation(); const router = useRouter(); const { locale } = router; const { appealtypes } = router.query; return (
{t("search:page-title")} - {t("common:service-name")}
); }; export const getServerSideProps = wrapper.getServerSideProps( (store) => async ({ query, req, res }) => { console.log("query-", query); const token = await getSASToken(); let searchResultsObj = await getBasicDNSSearch(token); searchResultsObj = searchResultsObj.status == 502 ? { value: [], errorCode: searchResultsObj.status, errorMsg: searchResultsObj.statusText, } : searchResultsObj; const searchDetailsObj = await getSearchDetails( token, searchResultsObj ); //console.log(searchDetailsObj); store.dispatch(setSearchResults(searchResultsObj)); store.dispatch(setSearchDetails(searchDetailsObj)); store.dispatch(setSearch("DNS")); } ); const getFormCollection = (formtype) => { const collectionName = jsonpath.query( data, "$..[?(@.LogicalName=='" + formtype + "')].LogicalCollectionName" ); //console.log(collectionName[0]); return collectionName[0]; }; const getSearchDetails = (token, searchResultsObj) => { //console.log(searchResultsObj); let detailsArr = []; searchResultsObj = searchResultsObj.value; const detailsObj = searchResultsObj.map((searchDetail, index) => { if (searchDetail.pinswg_appealcasetype == null) { console.log(searchDetail.ticketnumber); } else { detailsArr.push( getBasicSearchDetails( token, getFormCollection( "pinswg_" + searchDetail[ "pinswg_appealcasetype@OData.Community.Display.V1.FormattedValue" ] .replace(/(\band|[\s\-\+\(\)\,\&])/g, "") .toLowerCase() .slice(0, 39) ), searchDetail.ticketnumber ) ); } }); //console.log(detailsArr); return Promise.all(detailsArr); }; const mapStateToProps = (state) => { return { currentView: state.currentView, search: state.search, searchResultsObj: state.searchResultsObj, formData: state.formData, appealType: state.appealType, form: state.form, myCases: state.myCases, watchedCases: state.watchedCases, myRepresentations: state.myRepresentations, awaitingSubmission: state.awaitingSubmission, }; }; export default connect(mapStateToProps)(Home);