use of se.riv.clinicalprocess.healthcond.certificate.v3.ResultType in project webcert by sklintyg.
the class NotificationWSClient method sendStatusUpdate.
public void sendStatusUpdate(CertificateStatusUpdateForCareType request, @Header(NotificationRouteHeaders.LOGISK_ADRESS) String logicalAddress) throws TemporaryException, PermanentException {
LOG.debug("Sending status update to '{}' for intyg '{}'", logicalAddress, request.getUtlatande().getUtlatandeId().getExtension());
CertificateStatusUpdateForCareResponseType response = null;
try {
response = statusUpdateForCareClient.certificateStatusUpdateForCare(logicalAddress, request);
} catch (Exception e) {
LOG.warn("Exception occured when sending status update: {}", e.getMessage());
throw new TemporaryException(e);
}
ResultType result = response.getResult();
switch(result.getResultCode()) {
case ERROR:
if (ErrorIdType.TECHNICAL_ERROR.equals(result.getErrorId())) {
throw new TemporaryException(String.format("NotificationWSClient failed with error code: %s and message %s", result.getErrorId(), result.getResultText()));
} else {
throw new PermanentException(String.format("NotificationWSClient failed with non-recoverable error code: %s and message %s", result.getErrorId(), result.getResultText()));
}
case INFO:
LOG.info("NotificationWSClient got message:" + result.getResultText());
break;
case OK:
break;
}
}
use of se.riv.clinicalprocess.healthcond.certificate.v3.ResultType in project webcert by sklintyg.
the class SendMessageToRecipientProcessor method process.
public void process(@Body String xmlBody, @Header(Constants.INTYGS_ID) String intygsId, @Header(Constants.LOGICAL_ADDRESS) String logicalAddress) throws TemporaryException, PermanentException {
try {
SendMessageToRecipientType parameters = SendMessageToRecipientTypeConverter.fromXml(xmlBody);
SendMessageToRecipientResponseType response = sendMessageToRecipientResponder.sendMessageToRecipient(logicalAddress, parameters);
ResultType result = response.getResult();
switch(result.getResultCode()) {
case OK:
case INFO:
return;
case ERROR:
switch(result.getErrorId()) {
case REVOKED:
case VALIDATION_ERROR:
LOG.error("Call to sendMessageToRecipient for intyg {} caused an error: {}, ErrorId: {}." + " Rethrowing as PermanentException", intygsId, result.getResultText(), result.getErrorId());
throw new PermanentException(result.getResultText());
case APPLICATION_ERROR:
case TECHNICAL_ERROR:
LOG.error("Call to sendMessageToRecipient for intyg {} caused an error: {}, ErrorId: {}." + " Rethrowing as TemporaryException", intygsId, result.getResultText(), result.getErrorId());
throw new TemporaryException(result.getResultText());
}
}
} catch (JAXBException e) {
LOG.error("Call to sendMessageToRecipient for intyg {} caused an error: {}. Rethrowing as PermanentException", intygsId, e.getMessage());
throw new PermanentException(e.getMessage());
} catch (WebServiceException e) {
LOG.error("Call to sendMessageToRecipient for intyg {} caused an error: {}. Will retry", intygsId, e.getMessage());
throw new TemporaryException(e.getMessage());
}
}
use of se.riv.clinicalprocess.healthcond.certificate.v3.ResultType in project webcert by sklintyg.
the class CreateDraftCertificateResponderImpl method createSuccessResponse.
/**
* The response sent back to caller when creating a certificate draft succeeded.
*/
private CreateDraftCertificateResponseType createSuccessResponse(String nyttUtkastsId) {
ResultType result = ResultTypeUtil.okResult();
UtlatandeId utlId = new UtlatandeId();
utlId.setRoot("utlatandeId");
utlId.setExtension(nyttUtkastsId);
CreateDraftCertificateResponseType response = new CreateDraftCertificateResponseType();
response.setResult(result);
response.setUtlatandeId(utlId);
return response;
}
use of se.riv.clinicalprocess.healthcond.certificate.v3.ResultType in project webcert by sklintyg.
the class CreateDraftCertificateResponderImpl method createSuccessResponse.
/**
* The response sent back to caller when creating a certificate draft succeeded.
*/
private CreateDraftCertificateResponseType createSuccessResponse(String nyttUtkastsId, String invokingUnitHsaId) {
ResultType result = ResultTypeUtil.okResult();
IntygId intygId = new IntygId();
intygId.setRoot(invokingUnitHsaId);
intygId.setExtension(nyttUtkastsId);
CreateDraftCertificateResponseType response = new CreateDraftCertificateResponseType();
response.setResult(result);
response.setIntygsId(intygId);
return response;
}
use of se.riv.clinicalprocess.healthcond.certificate.v3.ResultType in project webcert by sklintyg.
the class CreateDraftCertificateResponderImpl method createErrorResponse.
/**
* The response sent back to caller when an error is raised.
*/
private CreateDraftCertificateResponseType createErrorResponse(String errorMsg, ErrorIdType errorType) {
ResultType result = ResultTypeUtil.errorResult(errorType, errorMsg);
CreateDraftCertificateResponseType response = new CreateDraftCertificateResponseType();
response.setResult(result);
return response;
}
Aggregations