use of ca.bc.gov.hlth.hnweb.model.rapid.RPBSPEE0 in project moh-hnweb by bcgov.
the class GroupMemberService method updateGroupMemberEmployeeNumber.
/**
* Update the group member's department number based on the R34/RPBSPPE0 request.
*
* @param rpbspee0
* @return The RPBSPED0 response.
* @throws HNWebException
*/
public RPBSPEE0 updateGroupMemberEmployeeNumber(RPBSPEE0 rpbspee0, Transaction transaction) throws HNWebException {
String rpbseed0Str = rpbspee0.serialize();
logger.info("Request {}", rpbseed0Str);
messageSent(transaction);
ResponseEntity<String> response = postRapidRequest(r34Path, rpbseed0Str);
messageReceived(transaction);
logger.debug("Response Status: {} ; Message:\n{}", response.getStatusCode(), response.getBody());
if (response.getStatusCode() != HttpStatus.OK) {
logger.error("Could not connect to downstream service. Service returned {}", response.getStatusCode());
throw new HNWebException(ExceptionType.DOWNSTREAM_FAILURE);
}
RPBSPEE0 rpbspee0Response = new RPBSPEE0(response.getBody());
return rpbspee0Response;
}
use of ca.bc.gov.hlth.hnweb.model.rapid.RPBSPEE0 in project moh-hnweb by bcgov.
the class RPBSPEE0Converter method convertRequest.
public RPBSPEE0 convertRequest(UpdateNumberAndDeptRequest request) {
RPBSHeader rpbsHeader = new RPBSHeader();
rpbsHeader.setOrganization(userInfo.getOrganization());
rpbsHeader.setTranCode(getTranCode());
EE0 ee0 = new EE0();
ee0.setGroupNumber(request.getGroupNumber());
ee0.setPhn(request.getPhn());
ee0.setEmployeeNumber(request.getGroupMemberNumber());
RPBSPEE0 rpbspee0 = new RPBSPEE0();
rpbspee0.setRpbsHeader(rpbsHeader);
rpbspee0.setEe0(ee0);
return rpbspee0;
}
use of ca.bc.gov.hlth.hnweb.model.rapid.RPBSPEE0 in project moh-hnweb by bcgov.
the class GroupMemberController method updateNumberAndDept.
/**
* Updates a group member's number and/or department.
* Maps to the legacy R34.
*
* @param updateNumberAndDeptRequest
* @return The result of the update.
*/
@PostMapping("/update-number-and-dept")
public ResponseEntity<UpdateNumberAndDeptResponse> updateNumberAndDept(@Valid @RequestBody UpdateNumberAndDeptRequest updateNumberAndDeptRequest, HttpServletRequest request) {
Transaction transaction = auditUpdateNumberAndDeptStart(updateNumberAndDeptRequest, request);
// Do basic validation since there's no point in calling the downstream systems if the data isn't valid
if (StringUtils.isBlank(updateNumberAndDeptRequest.getDepartmentNumber()) && StringUtils.isBlank(updateNumberAndDeptRequest.getGroupMemberNumber())) {
throw new ResponseStatusException(HttpStatus.BAD_REQUEST, "Department Number or Group Number is required");
}
try {
// Handle the department number
UpdateNumberAndDeptResponse deptNumberResponse = new UpdateNumberAndDeptResponse();
if (StringUtils.isNotBlank(updateNumberAndDeptRequest.getDepartmentNumber())) {
RPBSPED0Converter rpbsped0Converter = new RPBSPED0Converter();
RPBSPED0 rpbsped0Request = rpbsped0Converter.convertRequest(updateNumberAndDeptRequest);
RPBSPED0 rpbsped0Response = groupMemberService.updateGroupMemberDepartmentNumber(rpbsped0Request, transaction);
deptNumberResponse = rpbsped0Converter.convertResponse(rpbsped0Response);
}
// Handle the group member/employee number
UpdateNumberAndDeptResponse empNumberResponse = new UpdateNumberAndDeptResponse();
if (StringUtils.isNotBlank(updateNumberAndDeptRequest.getGroupMemberNumber())) {
RPBSPEE0Converter rpbspee0Converter = new RPBSPEE0Converter();
RPBSPEE0 rpbspee0Request = rpbspee0Converter.convertRequest(updateNumberAndDeptRequest);
RPBSPEE0 rpbspee0Response = groupMemberService.updateGroupMemberEmployeeNumber(rpbspee0Request, transaction);
empNumberResponse = rpbspee0Converter.convertResponse(rpbspee0Response);
}
// Combine the results
UpdateNumberAndDeptResponse updateNumberAndDeptResponse = handleUpdateGroupMemberResponse(deptNumberResponse, empNumberResponse);
ResponseEntity<UpdateNumberAndDeptResponse> response = ResponseEntity.ok(updateNumberAndDeptResponse);
logger.info("updateNumberAndDept response: {} ", updateNumberAndDeptResponse);
transactionComplete(transaction);
addAffectedParty(transaction, IdentifierType.PHN, updateNumberAndDeptResponse.getPhn());
return response;
} catch (Exception e) {
handleException(transaction, e);
return null;
}
}
Aggregations