use of se.inera.intyg.common.support.modules.support.api.exception.ModuleException in project webcert by sklintyg.
the class AbstractUtkastBuilder method populateCopyUtkastFromOrignalUtkast.
/*
* (non-Javadoc)
*
* @see
* se.inera.intyg.webcert.web.service.utkast.CopyUtkastBuilder#populateCopyUtkastFromOrignalUtkast(se.inera.intyg.
* webcert.web.service.utkast.dto.CreateNewDraftCopyRequest, se.inera.intyg.webcert.integration.pu.model.Person)
*/
@Override
@Transactional(value = "jpaTransactionManager", readOnly = true)
public CopyUtkastBuilderResponse populateCopyUtkastFromOrignalUtkast(T copyRequest, Person patientDetails, boolean addRelation, boolean coherentJournaling, boolean enforceEnhet) throws ModuleNotFoundException, ModuleException {
String orignalIntygsId = copyRequest.getOriginalIntygId();
Utkast orgUtkast = utkastRepository.findOne(orignalIntygsId);
ModuleApi orgModuleApi = moduleRegistry.getModuleApi(copyRequest.getOriginalIntygTyp());
Utlatande orgUtlatande;
try {
orgUtlatande = orgModuleApi.getUtlatandeFromJson(orgUtkast.getModel());
} catch (IOException e) {
throw new ModuleException("Could not convert original certificate to Utlatande", e);
}
// Perform enhets auth if coherent journaling is not active.
if (!coherentJournaling || enforceEnhet) {
verifyEnhetsAuth(orgUtkast.getVardgivarId(), orgUtkast.getEnhetsId(), true);
} else {
LogRequest logRequest = LogRequestFactory.createLogRequestFromUtkast(orgUtkast, coherentJournaling);
logService.logReadIntyg(logRequest);
}
CopyUtkastBuilderResponse builderResponse = new CopyUtkastBuilderResponse();
builderResponse.setOrginalEnhetsId(orgUtkast.getEnhetsId());
builderResponse.setOrginalEnhetsNamn(orgUtkast.getEnhetsNamn());
builderResponse.setOrginalVardgivarId(orgUtkast.getVardgivarId());
builderResponse.setOrginalVardgivarNamn(orgUtkast.getVardgivarNamn());
LOG.debug("Populating copy with details from Utkast '{}'", orignalIntygsId);
ModuleApi moduleApi = moduleRegistry.getModuleApi(copyRequest.getTyp());
// Set relation to null if not applicable
Relation relation = createRelation(copyRequest);
String newDraftCopyId = intygsIdStrategy.createId();
String draftCopyJson = getInternalModel(orgUtlatande, moduleApi, copyRequest, patientDetails, relation, newDraftCopyId);
UtkastStatus utkastStatus = validateDraft(moduleApi, draftCopyJson);
Utkast utkast = buildUtkastCopy(copyRequest, newDraftCopyId, copyRequest.getTyp(), addRelation, relation, draftCopyJson, utkastStatus);
if (patientDetails != null) {
populatePatientDetailsFromPerson(utkast, patientDetails);
} else {
populatePatientDetailsFromUtkast(utkast, orgUtkast);
}
replacePatientPersonnummerWithNew(utkast, copyRequest);
builderResponse.setUtkastCopy(utkast);
return builderResponse;
}
use of se.inera.intyg.common.support.modules.support.api.exception.ModuleException in project webcert by sklintyg.
the class UtkastModelToXmlConverterServiceImpl method utkastToJAXBObject.
private Intyg utkastToJAXBObject(String intygsTyp, String json) {
try {
ModuleApi moduleApi = intygModuleRegistry.getModuleApi(intygsTyp);
Utlatande utlatandeFromJson = moduleApi.getUtlatandeFromJson(json);
return moduleApi.getIntygFromUtlatande(utlatandeFromJson);
} catch (ModuleNotFoundException | IOException | ModuleException e) {
LOG.error("Error building Intyg JAXB object from Utkast. Message: {}", e.getMessage());
throw new IllegalArgumentException(e.getMessage());
}
}
use of se.inera.intyg.common.support.modules.support.api.exception.ModuleException in project webcert by sklintyg.
the class UtkastBootstrapBean method init.
@PostConstruct
public void init() throws IOException {
for (Resource resource : getResourceListing("classpath*:module-bootstrap-certificate/*.xml")) {
try {
String moduleName = resource.getFilename().split("__")[0];
LOG.info("Bootstrapping certificate '{}' from module ", resource.getFilename(), moduleName);
Utlatande utlatande = buildUtlatande(resource, moduleName);
if (utkastRepo.findOne(utlatande.getId()) == null) {
utkastRepo.save(createUtkast(utlatande));
switch(utlatande.getTyp()) {
case Fk7263EntryPoint.MODULE_ID:
fragaRepo.save(createFragaSvar(utlatande, FrageStallare.FORSAKRINGSKASSAN, true, false));
fragaRepo.save(createFragaSvar(utlatande, FrageStallare.WEBCERT, false, false));
fragaRepo.save(createFragaSvar(utlatande, FrageStallare.FORSAKRINGSKASSAN, false, true));
fragaRepo.save(createFragaSvar(utlatande, FrageStallare.FORSAKRINGSKASSAN, false, false));
break;
case TsBasEntryPoint.MODULE_ID:
case TsDiabetesEntryPoint.MODULE_ID:
// These certificates does not support arende or fragaSvar
break;
default:
// SIT certificates
setupArende(utlatande, true, true, FrageStallare.FORSAKRINGSKASSAN);
setupArende(utlatande, false, false, FrageStallare.WEBCERT);
setupArende(utlatande, false, false, FrageStallare.FORSAKRINGSKASSAN);
break;
}
}
} catch (ModuleException | ModuleNotFoundException | IOException e) {
LOG.error("Could not bootstrap {}", resource.getFilename(), e);
}
}
}
use of se.inera.intyg.common.support.modules.support.api.exception.ModuleException in project webcert by sklintyg.
the class IntygModuleFacadeTest method testGetRevokeCertificateRequestModuleException.
@Test(expected = ModuleException.class)
public void testGetRevokeCertificateRequestModuleException() throws Exception {
when(moduleApi.createRevokeRequest(isNull(), isNull(), anyString())).thenThrow(new ModuleException());
moduleFacade.getRevokeCertificateRequest(CERTIFICATE_TYPE, null, null, "message");
}
use of se.inera.intyg.common.support.modules.support.api.exception.ModuleException in project webcert by sklintyg.
the class IntygServiceImpl method revokeIntyg.
/*
* (non-Javadoc)
*
* @see se.inera.intyg.webcert.web.service.intyg.IntygService#revokeIntyg(java.lang.String, java.lang.String)
*/
@Override
public IntygServiceResult revokeIntyg(String intygsId, String intygsTyp, String revokeMessage, String reason) {
LOG.debug("Attempting to revoke intyg {}", intygsId);
IntygContentHolder intyg = getIntygData(intygsId, intygsTyp, false);
verifyEnhetsAuth(intyg.getUtlatande(), true);
verifyIsSigned(intyg.getStatuses());
if (intyg.isRevoked()) {
LOG.debug("Certificate with id '{}' is already revoked", intygsId);
throw new WebCertServiceException(WebCertServiceErrorCodeEnum.INVALID_STATE, "Certificate is already revoked");
}
try {
certificateSenderService.revokeCertificate(intygsId, modelFacade.getRevokeCertificateRequest(intygsTyp, intyg.getUtlatande(), IntygConverterUtil.buildHosPersonalFromWebCertUser(webCertUserService.getUser(), null), revokeMessage), intygsTyp);
whenSuccessfulRevoke(intyg.getUtlatande(), reason);
return IntygServiceResult.OK;
} catch (CertificateSenderException | ModuleException | IntygModuleFacadeException e) {
throw new WebCertServiceException(WebCertServiceErrorCodeEnum.UNKNOWN_INTERNAL_PROBLEM, e.getMessage());
}
}
Aggregations