private void setPIIControllerInfo(ReceiptInput receipt) throws ConsentManagementException { PiiController controllerInfo = getPIIController(piiControllers).getControllerInfo(receipt.getTenantDomain()); JSONObject controller = new JSONObject(); controller.put(PII_CONTROLLER_NAME, controllerInfo.getPiiController()); controller.put(ON_BEHALF, controllerInfo.isOnBehalf()); controller.put(CONTACT, controllerInfo.getContact()); controller.put(EMAIL, controllerInfo.getEmail()); controller.put(PHONE, controllerInfo.getPhone()); controller.put(PII_CONTROLLER_URL, controllerInfo.getPiiControllerUrl()); Address piiAddress = controllerInfo.getAddress(); if (piiAddress != null) { JSONObject address = new JSONObject(); address.put(ADDRESS_COUNTRY, piiAddress.getAddressCountry() ); address.put(ADDRESS_LOCALITY, piiAddress.getAddressLocality()); address.put(ADDRESS_REGION, piiAddress.getAddressRegion()); address.put(POST_OFFICE_BOX_NUMBER, piiAddress.getPostOfficeBoxNumber()); address.put(POSTAL_CODE, piiAddress.getPostalCode()); address.put(STREET_ADDRESS, piiAddress.getStreetAddress()); controller.put(ADDRESS, address); } receipt.setPiiControllerInfo(controller.toString()); }
private void validateInputParameters(ReceiptInput receiptInput) throws ConsentManagementException { //Set authenticated user. if (isBlank(receiptInput.getPiiPrincipalId())) { receiptInput.setPiiPrincipalId(PrivilegedCarbonContext.getThreadLocalCarbonContext().getUsername()); } // Set authenticated user's tenant id if it is not set. if (isBlank(receiptInput.getTenantDomain())) { receiptInput.setTenantId(getTenantIdFromCarbonContext()); receiptInput.setTenantDomain(getTenantDomainFromCarbonContext()); } else { receiptInput.setTenantId(getTenantId(realmService, receiptInput.getTenantDomain())); } validateRequiredParametersInConsent(receiptInput); receiptInput.getServices().forEach(rethrowConsumer(receiptServiceInput -> { validateRequiredParametersInService(receiptServiceInput); receiptServiceInput.getPurposes().forEach(rethrowConsumer(receiptPurposeInput -> validateRequiredParametersInPurpose(receiptServiceInput, receiptPurposeInput))); })); if (log.isDebugEnabled()) { log.debug("Consent adding request validation success"); } }
/** * This API is used to verify and store consent input. * * @param receiptInput consent input. * @throws ConsentManagementException Consent Management Exception. */ public AddReceiptResponse addConsent(ReceiptInput receiptInput) throws ConsentManagementException { validateInputParameters(receiptInput); receiptInput.setConsentReceiptId(generateConsentReceiptId()); setAPIVersion(receiptInput); setPIIControllerInfo(receiptInput); getReceiptsDAO(receiptDAOs).addReceipt(receiptInput); if (log.isDebugEnabled()) { log.debug("Consent stored successfully with the Id: " + receiptInput.getConsentReceiptId()); } return new AddReceiptResponse(receiptInput.getConsentReceiptId(), receiptInput.getCollectionMethod(), receiptInput.getLanguage(), receiptInput.getPiiPrincipalId(), receiptInput.getTenantDomain()); }