RequestHeaderToDWPEligibilityRequestConverter.java
package uk.gov.dhsc.htbhf.dwp.converter;
import org.springframework.web.context.request.NativeWebRequest;
import uk.gov.dhsc.htbhf.dwp.http.HeaderName;
import uk.gov.dhsc.htbhf.dwp.model.DWPEligibilityRequest;
import uk.gov.dhsc.htbhf.dwp.model.PersonDTO;
import static uk.gov.dhsc.htbhf.dwp.converter.ConverterUtils.nullSafeGetDate;
import static uk.gov.dhsc.htbhf.dwp.converter.ConverterUtils.nullSafeGetInteger;
import static uk.gov.dhsc.htbhf.dwp.http.HeaderName.*;
/**
* Converts the HTTP headers in the web request given as a part of the DWP Eligibility Request into a DTO object.
*/
public class RequestHeaderToDWPEligibilityRequestConverter {
public DWPEligibilityRequest convert(NativeWebRequest webRequest) {
return DWPEligibilityRequest.builder()
.person(buildPerson(webRequest))
.eligibilityEndDate(nullSafeGetDate(webRequest, ELIGIBILITY_END_DATE))
.ucMonthlyIncomeThresholdInPence(nullSafeGetInteger(webRequest, UC_MONTHLY_INCOME_THRESHOLD))
.build();
}
private PersonDTO buildPerson(NativeWebRequest webRequest) {
return PersonDTO.builder()
.surname(getHeader(webRequest, SURNAME))
.nino(getHeader(webRequest, NINO))
.dateOfBirth(nullSafeGetDate(webRequest, DATE_OF_BIRTH))
.addressLine1(getHeader(webRequest, ADDRESS_LINE_1))
.postcode(getHeader(webRequest, POSTCODE))
.emailAddress(getHeader(webRequest, EMAIL_ADDRESS))
.mobilePhoneNumber(getHeader(webRequest, MOBILE_PHONE_NUMBER))
.pregnantDependentDob(nullSafeGetDate(webRequest, PREGNANT_DEPENDENT_DOB))
.build();
}
private String getHeader(NativeWebRequest webRequest, HeaderName headerName) {
return webRequest.getHeader(headerName.getHeader());
}
}