diff --git a/actions/index.js b/actions/index.js index 3dc36942..76fb4818 100644 --- a/actions/index.js +++ b/actions/index.js @@ -617,7 +617,7 @@ export const getAppealsTypes = (token) => { return axios .get( WEBAPI_URL + - "stringmaps?$filter=attributename%20eq%20%27pinswg_appealcasetype%27&$count=true&$select=value,stringmapid,organizationid,attributevalue", + "stringmaps?$filter=attributename eq 'pinswg_appealcasetype' and value ne 'LDP' and value ne 'Misc Casework'&$count=true&$select=value,stringmapid,organizationid,attributevalue", azureHeaders(token) ) .then((res) => res.data) @@ -642,7 +642,7 @@ export const getLPA = (token) => { azureHeaders(token) ) .then((res) => { - console.log(res.data); + //console.log(res.data); return res.data; }) .catch((error) => { @@ -656,18 +656,28 @@ export const getLPA = (token) => { }); }; -export const getPersonalAccount = () => { - console.log("api_root: ", BASE_URL); +export const getPersonalAccount = (token, contactid) => { + console.log("getting personal details:", contactid); return axios - .get( - BASE_URL + "/api/lookups/personaldetails", - //.get("https://devcrm2016.llcdt.gov.wales/DVPINS/api/data/v8.2/contacts?$select=name", - { httpsAgent: new https.Agent({ rejectUnauthorized: false }) } + WEBAPI_URL + + "contacts(" + + contactid + + ")?$select=firstname, lastname, emailaddress1, telephone1, company, address1_line1,address1_line2,address1_city, address1_county,address1_postalcode&$count=true", + azureHeaders(token) ) - .then((res) => res.data) + .then((res) => { + console.log(res.data); + return res.data; + }) .catch((error) => { - console.log("thi serror", error); + let ErrResponse = { + value: [], + errorCode: error.response.status, + errorMsg: error.response.statusText, + }; + + return ErrResponse; }); }; @@ -916,3 +926,58 @@ export const createAccount = (formValues) => { console.log("this serror", error); }); }; + +export const updateAccount = (contactId, updateBody) => { + var data = JSON.stringify(updateBody); + + var config = { + method: "patch", + url: "/api/proxy/contacts(" + contactId + ")", + headers: { + "OData-MaxVersion": "4.0", + "OData-Version": "4.0", + "Accept": "application/json", + "Prefer": 'odata.include-annotations="*",return=representation', + "Content-Type": "application/json", + "ServiceBusAuthorization": getSASToken(), + }, + data: data, + }; + // console.log(config); + return axios(config) + .then((res) => { + console.log("posted ", res.data); + return res.data; + }) + .catch((error) => { + console.log("this serror", error); + }); +}; + +export const updatePassword = (contactId, newpassword) => { + let updateBody = { "pinswg_custom_password": newpassword }; + var data = JSON.stringify(updateBody); + + var config = { + method: "patch", + url: "/api/proxy/contacts(" + contactId + ")", + headers: { + "OData-MaxVersion": "4.0", + "OData-Version": "4.0", + "Accept": "application/json", + "Prefer": 'odata.include-annotations="*",return=representation', + "Content-Type": "application/json", + "ServiceBusAuthorization": getSASToken(), + }, + data: data, + }; + // console.log(config); + return axios(config) + .then((res) => { + console.log("posted ", res.data); + return res.data; + }) + .catch((error) => { + console.log("this serror", error); + }); +}; diff --git a/components/account/personaldetails.js b/components/account/personaldetails.js index 5bb8040d..1a4b6efe 100644 --- a/components/account/personaldetails.js +++ b/components/account/personaldetails.js @@ -24,6 +24,7 @@ const RenderTextfield = ({ input, type, errorMsg, + disabled, meta: { touched, error }, ...custom }) => { @@ -55,18 +56,23 @@ const RenderTextfield = ({ name={id} id={id} type={type} + disabled={disabled ? true : false} /> ); }; -const PersonalDetails = (props) => { +let PersonalDetails = (props) => { const { handleSubmit, value, setPersonalDetailsComplete, setAccountUpdatedComplete, + load, + pristine, + reset, + submitting, } = props; let { t, lang } = useTranslation(); @@ -126,17 +132,18 @@ const PersonalDetails = (props) => { errorMsg="Is required" /> { /> { { errorMsg="Is required" /> { errorMsg="Is required" /> { errorMsg="Is required" /> { errorMsg="Is required" /> { ) ) : ( - + )} ); @@ -262,23 +269,37 @@ const mapDispatchToProps = (dispatch) => { const selector = formValueSelector("personalDetailsForm"); // <-- same as form name -export default connect( - mapStateToProps, - mapDispatchToProps - //, (state) => ({ - // initialValues: state.accountDetails.accountDetails.data, - // // search: state.search, - // searchResultsObj: state.searchResultsObj, - // formData: state.formData, - // appealType: state.appealType, - // accountDetails: state.accountDetails, - // form: state.form, - // pull initial values from account reducer - //}) -)( - reduxForm({ - form: "personalDetailsForm", - enableReinitialize: true, // this is needed!! - destroyOnUnmount: false, - })(PersonalDetails) -); +// export default connect( +// mapStateToProps, +// mapDispatchToProps +// //, (state) => ({ +// // initialValues: state.accountDetails.accountDetails.data, +// // // search: state.search, +// // searchResultsObj: state.searchResultsObj, +// // formData: state.formData, +// // appealType: state.appealType, +// // accountDetails: state.accountDetails, +// // form: state.form, +// // pull initial values from account reducer +// //}) +// )( +// reduxForm({ +// form: "personalDetailsForm", +// enableReinitialize: true, // this is needed!! +// destroyOnUnmount: false, +// })(PersonalDetails) +// ); + +// Decorate with reduxForm(). It will read the initialValues prop provided by connect() +PersonalDetails = reduxForm({ + form: "personalDetailsForm", + enableReinitialize: true, // this is needed!! + destroyOnUnmount: false, +})(PersonalDetails); + +// You have to connect() to any reducers that you wish to connect to yourself +PersonalDetails = connect((state) => ({ + initialValues: state.accountDetails.accountDetails, // pull initial values from account reducer +}))(PersonalDetails); + +export default PersonalDetails; diff --git a/components/account/personaldetailsCheck.js b/components/account/personaldetailsCheck.js index c4df3bff..d16a2b53 100644 --- a/components/account/personaldetailsCheck.js +++ b/components/account/personaldetailsCheck.js @@ -80,7 +80,7 @@ const BuildCheckPersonalDetails = (props) => {
{ props.props.props.form.personalDetailsForm.values - .email + .emailaddress1 }
@@ -104,7 +104,7 @@ const BuildCheckPersonalDetails = (props) => {
{ props.props.props.form.personalDetailsForm.values - .telephone + .telephone1 }
@@ -127,7 +127,7 @@ const BuildCheckPersonalDetails = (props) => {
{ props.props.props.form.personalDetailsForm.values - .companygroup + .company }
@@ -155,7 +155,7 @@ const BuildCheckPersonalDetails = (props) => {
{ props.props.props.form.personalDetailsForm.values - .addressline1 + .address1_line1 }
@@ -179,7 +179,7 @@ const BuildCheckPersonalDetails = (props) => {
{ props.props.props.form.personalDetailsForm.values - .addressline2 + .address1_line2 }
@@ -203,7 +203,7 @@ const BuildCheckPersonalDetails = (props) => {
{ props.props.props.form.personalDetailsForm.values - .towncity + .address1_city }
@@ -227,7 +227,7 @@ const BuildCheckPersonalDetails = (props) => {
{ props.props.props.form.personalDetailsForm.values - .county + .address1_county }
@@ -251,7 +251,7 @@ const BuildCheckPersonalDetails = (props) => {
{ props.props.props.form.personalDetailsForm.values - .postcode + .address1_postalcode }
diff --git a/components/account/personaldetailsComplete.js b/components/account/personaldetailsComplete.js index 757444e1..a3a3b01e 100644 --- a/components/account/personaldetailsComplete.js +++ b/components/account/personaldetailsComplete.js @@ -1,6 +1,6 @@ import _ from "lodash"; import Link from "next/link"; -import React, { useState } from "react"; +import React, { useState, useEffect } from "react"; import { useRouter } from "next/router"; import useTranslation from "next-translate/useTranslation"; import { @@ -17,6 +17,7 @@ import { setRegisterFormComplete, setAccountCreatedComplete, } from "react-redux"; +import { updateAccount } from "../../actions"; const PersonalDetailsComplete = (props) => { const { @@ -30,6 +31,12 @@ const PersonalDetailsComplete = (props) => { const router = useRouter(); const { locale } = router; + useEffect(() => { + let contactid = props.accountDetails.loggedinUserId; + let updateBody = props.props.props.form.personalDetailsForm.values; + updateAccount(contactid, updateBody); + }, []); + return ( <>

Your details have been updated

@@ -41,7 +48,9 @@ const PersonalDetailsComplete = (props) => {

- + Return to My Portal

diff --git a/components/main.js b/components/main.js index 50a6c56f..b7bb53e4 100644 --- a/components/main.js +++ b/components/main.js @@ -29,7 +29,7 @@ export default function Home({ children, pages }) { {/* - */} + */} diff --git a/data/lookuptranslations.json b/data/lookuptranslations.json index 88e8265c..665106c4 100644 --- a/data/lookuptranslations.json +++ b/data/lookuptranslations.json @@ -297,7 +297,7 @@ "pinswg_lpa": 0 }, { - "value": "Rhondda Cynon Taf County Borough Council", + "value": "Rhondda Cynon Taff County Borough Council", "value_cy": "Cyngor Bwrdeistref Sirol Rhondda Cynon Taf", "pinswg_lpa": 0 }, diff --git a/pages/account/changepassword.js b/pages/account/changepassword.js index 8ada964d..d4ef41c5 100644 --- a/pages/account/changepassword.js +++ b/pages/account/changepassword.js @@ -88,17 +88,17 @@ const Home = (props) => { ); }; -export const getServerSideProps = wrapper.getServerSideProps( - (store) => - async ({ query, req, res }) => { - const appealTypeData = await getAppealsTypes(); - const lpaData = await getLPA(); - console.log("appeal types", appealTypeData); - console.log("lpa typeswwwww", lpaData); - store.dispatch(setAppealType(appealTypeData)); - store.dispatch(setLPA(lpaData)); - } -); +// export const getServerSideProps = wrapper.getServerSideProps( +// (store) => +// async ({ query, req, res }) => { +// const appealTypeData = await getAppealsTypes(); +// const lpaData = await getLPA(); +// console.log("appeal types", appealTypeData); +// console.log("lpa typeswwwww", lpaData); +// store.dispatch(setAppealType(appealTypeData)); +// store.dispatch(setLPA(lpaData)); +// } +// ); const mapStateToProps = (state) => { return { diff --git a/pages/myportal/index.js b/pages/myportal/index.js index 684e6354..47cbef79 100644 --- a/pages/myportal/index.js +++ b/pages/myportal/index.js @@ -15,6 +15,7 @@ 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 { setLoggedInUserId, setAccountDetails, @@ -34,6 +35,7 @@ import { } from "../../store/awaitingSubmission/action"; import { getSASToken, + getPersonalAccount, getMyCases, getMyRepresentations, getWatchedCases, @@ -157,21 +159,35 @@ export const getServerSideProps = wrapper.getServerSideProps( console.log("qweqe ", loggedInUser); - const [myCases, myRepresentations, watchedCases, awaitingSubmission] = - await Promise.all([ - await getMyCases(token, loggedInUser), - await getMyRepresentations(token, loggedInUser), - await getWatchedCases(token, loggedInUser), - await getAwaitingSubmission(token), - ]); + const [ + accountDetails, + myCases, + myRepresentations, + watchedCases, + awaitingSubmission, + ] = await Promise.all([ + await getPersonalAccount(token, loggedInUser), + await getMyCases(token, loggedInUser), + await getMyRepresentations(token, loggedInUser), + await getWatchedCases(token, loggedInUser), + await getAwaitingSubmission(token), + ]); - // const cookiesMaker = new Cookies(req, res); + console.log("perosnal: ", accountDetails); - // cookiesMaker.set("pinsUser", query.q, { - // httpOnly: true, // true by default - // }); + //const cookiesMaker = nookies.get(ctx) + + let now = new Date(); + let expDate = new Date(now); + expDate.setDate(now.getDate() + 1); + + nookies.set(ctx, "pinsUser", query.q, { + expires: expDate, + httpOnly: false, + }); + + console.log(" from cookie ", cookies); - // console.log(" from cookie ", cookiesMaker.get("pinsUser")); console.log(myCases); const [ @@ -187,7 +203,7 @@ export const getServerSideProps = wrapper.getServerSideProps( ]); console.log(myCasesDetails); - + store.dispatch(setAccountDetails(accountDetails)); store.dispatch(setLoggedInUserId(loggedInUser)); store.dispatch(setMyCases(myCases)); store.dispatch(setMyCasesDetails(myCasesDetails));