private Set<Integer> getPIIs(Purpose purpose) throws ConsentUtilityServiceException { Set<Integer> uniquePIIs = new HashSet<>(); Integer id = purpose.getId(); purpose = fillPurpose(purpose); List<PurposePIICategory> purposePIICategories = purpose.getPurposePIICategories(); for (PurposePIICategory purposePIICategory : purposePIICategories) { uniquePIIs.add(purposePIICategory.getId()); } return uniquePIIs; }
try { insertedId = jdbcTemplate.executeInsert(INSERT_PURPOSE_SQL, (preparedStatement -> { preparedStatement.setString(1, purpose.getName()); preparedStatement.setString(2, purpose.getDescription()); preparedStatement.setString(3, purpose.getGroup()); preparedStatement.setString(4, purpose.getGroupType()); preparedStatement.setInt(5, purpose.getTenantId()); }), purpose, true); } catch (DataAccessException e) { throw ConsentUtils.handleServerException(ErrorMessages.ERROR_CODE_ADD_PURPOSE, purpose.getName(), e); purpose.getPurposePIICategories().forEach(rethrowConsumer(piiCategory -> { try { jdbcTemplate.executeInsert(INSERT_RECEIPT_PURPOSE_PII_ASSOC_SQL, (preparedStatement -> { purposeResult = new Purpose(insertedId, purpose.getName(), purpose.getDescription(), purpose.getGroup(), purpose.getGroupType(), purpose.getTenantId(), purpose .getPurposePIICategories()); return purposeResult;
try { purpose = jdbcTemplate.fetchSingleRecord(GET_PURPOSE_BY_ID_SQL, (resultSet, rowNumber) -> new Purpose(resultSet.getInt(1), resultSet.getString(2), resultSet.getString(3), resultSet.getString(4), resultSet.getString(5), resultSet.getInt(6)), resultSet.getInt(1), resultSet.getInt(2) == 1)), preparedStatement -> preparedStatement.setInt(1, purpose.getId())); purpose.setPurposePIICategories(piiCategories); } catch (DataAccessException e) { throw ConsentUtils.handleServerException(ErrorMessages.ERROR_CODE_SELECT_PURPOSE_BY_ID, String.valueOf(id), e);
private Purpose populatePiiCategories(Purpose purposeResponse) { List<PurposePIICategory> purposePIICategories = new ArrayList<>(); purposeResponse.getPurposePIICategories().forEach(rethrowConsumer( piiCategory -> purposePIICategories.add(getPurposePIICategory(piiCategory)))); purposeResponse.setPurposePIICategories(purposePIICategories); if (log.isDebugEnabled()) { log.debug("Purpose created successfully with the name: " + purposeResponse.getName()); } return purposeResponse; }
if (isBlank(purpose.getName())) { if (log.isDebugEnabled()) { log.debug("Purpose name cannot be empty"); if (isPurposeExists(purpose.getName(), purpose.getGroup(), purpose.getGroupType())) { if (log.isDebugEnabled()) { log.debug("A purpose already exists with name: " + purpose.getName()); throw handleClientException(ERROR_CODE_PURPOSE_ALREADY_EXIST, purpose.getName()); if (isBlank(purpose.getGroup())) { if (log.isDebugEnabled()) { log.debug("Purpose group is empty for: " + purpose.getName()); if (isBlank(purpose.getGroupType())) { if (log.isDebugEnabled()) { log.debug("Purpose group type is empty for: " + purpose.getName()); if (isBlank(purpose.getTenantDomain())) { purpose.setTenantId(getTenantIdFromCarbonContext()); purpose.setTenantDomain(getTenantDomainFromCarbonContext()); } else { purpose.setTenantId(getTenantId(realmService, purpose.getTenantDomain())); if (isNotEmpty(purpose.getPurposePIICategories())) { purpose.getPurposePIICategories().forEach(rethrowConsumer(purposePIICategory -> { int id = purposePIICategory.getId(); if (getPiiCategoryById(id) == null) {
Set<Integer> mandatoryPIIs = getMandatoryPIIs(purpose); if (log.isDebugEnabled()) { log.debug("Mandatory PIIs for purpose : " + purpose.getName() + " : " + Arrays.toString (mandatoryPIIs.toArray())); List<ReceiptPurposeInput> consentPurposes = service.getPurposes(); for (ReceiptPurposeInput consentPurpose : consentPurposes) { if (consentPurpose.getPurposeId() == purpose.getId()) { purposeConsented = true; List<PIICategoryValidity> pIICategories = consentPurpose.getPiiCategory(); "purpose " + purpose.getName() + " with ID: " + purpose.getId() + ", which has " + "mandatory PIIs");
/** * This API is used to get the purpose by purpose name. * * @param name Name of the purpose. * @param group Name of the purpose group. * @param groupType Type of the purpose group. * @return Purpose matching the input criteria. * @throws ConsentManagementException Consent Management Exception. */ public Purpose getPurposeByName(String name, String group, String groupType) throws ConsentManagementException { Purpose purposeByName = getPurposeFromName(name, group, groupType); if (purposeByName == null) { if (log.isDebugEnabled()) { log.debug("No purpose found as the name: " + name + " in tenant domain: " + getTenantDomainFromCarbonContext()); } throw ConsentUtils.handleClientException(ERROR_CODE_PURPOSE_NAME_INVALID, name); } return getPurposeById(purposeByName.getId()); }
private Purpose addDefaultPurpose() throws SSOConsentServiceException { Purpose purpose; Purpose defaultPurpose = new Purpose(DEFAULT_PURPOSE, "For core functionalities of the product", DEFAULT_PURPOSE_GROUP, DEFAULT_PURPOSE_GROUP_TYPE); try { purpose = getConsentManager().addPurpose(defaultPurpose); } catch (ConsentManagementException e) { throw new SSOConsentServiceException("Consent purpose error", "Error while adding purpose: " + DEFAULT_PURPOSE, e); } return purpose; }
public void addPurpose(PurposeRequestDTO purposeRequestDTO) throws ConsentManagementException { Purpose purpose = new Purpose(purposeRequestDTO.getPurpose(), purposeRequestDTO.getDescription(), purposeRequestDTO.getGroup(), purposeRequestDTO.getGroupType()); List<PurposePIICategory> piiCategories = new ArrayList<>(); purpose.setPurposePIICategories(piiCategories); getConsentManager().addPurpose(purpose);
/** * This API is used to get the purpose by purpose Id. * * @param purposeId ID of the purpose. * @return 200 OK with purpose element. * @throws ConsentManagementException Consent Management Exception. */ public Purpose getPurpose(int purposeId) throws ConsentManagementException { Purpose purpose = getPurposeById(purposeId); if (purpose == null) { if (log.isDebugEnabled()) { log.debug("No purpose found for the Id: " + purposeId); } throw ConsentUtils.handleClientException(ERROR_CODE_PURPOSE_ID_INVALID, String.valueOf(purposeId)); } List<PurposePIICategory> purposePIICategories = new ArrayList<>(); purpose.getPurposePIICategories().forEach(rethrowConsumer(piiCategory -> purposePIICategories.add (getPurposePIICategory(piiCategory)))); purpose.setPurposePIICategories(purposePIICategories); return purpose; }
/** * Get mandatory PIIs of a purpose. * * @param purpose Purpose. * @return A set of mandatory PIIs in the given purpose. * @throws ConsentUtilityServiceException ConsentUtilityServiceException. */ public Set<Integer> getMandatoryPIIs(Purpose purpose) throws ConsentUtilityServiceException { if (purpose == null) { throw new ConsentUtilityServiceException("Purposes List should not be null"); } Set<Integer> mandatoryPIIs = new HashSet<>(); purpose = fillPurpose(purpose); List<PurposePIICategory> purposePIICategories = purpose.getPurposePIICategories(); for (PurposePIICategory purposePIICategory : purposePIICategories) { if (purposePIICategory.getMandatory()) { mandatoryPIIs.add(purposePIICategory.getId()); } } return mandatoryPIIs; }
receiptPurposeInput.setPurposeName(purpose.getName());
Set<Integer> mandatoryPIIs = getMandatoryPIIs(purpose); if (log.isDebugEnabled()) { log.debug("Mandatory PIIs for purpose : " + purpose.getName() + " : " + Arrays.toString (mandatoryPIIs.toArray())); List<ReceiptPurposeInput> consentPurposes = service.getPurposes(); for (ReceiptPurposeInput consentPurpose : consentPurposes) { if (consentPurpose.getPurposeId() == purpose.getId()) { purposeConsented = true; List<PIICategoryValidity> pIICategories = consentPurpose.getPiiCategory(); "purpose " + purpose.getName() + " with ID: " + purpose.getId() + ", which has " + "mandatory PIIs");
public void deletePurposeByName(String purposeName, String group, String groupType) throws ConsentManagementException { handleLoggedInUserAuthorization(PERMISSION_CONSENT_MGT_DELETE); Purpose purposeByName = getConsentManager().getPurposeByName(purposeName, group, groupType); deletePurpose(purposeByName.getId()); }
(resultSet, rowNumber) -> new Purpose(resultSet.getInt(1), resultSet.getString(2), resultSet.getString(3),
/** * Get mandatory PIIs of a purpose. * * @param purpose Purpose. * @return A set of mandatory PIIs in the given purpose. * @throws ConsentUtilityServiceException ConsentUtilityServiceException. */ public Set<Integer> getMandatoryPIIs(Purpose purpose) throws ConsentUtilityServiceException { if (purpose == null) { throw new ConsentUtilityServiceException("Purposes List should not be null"); } Set<Integer> mandatoryPIIs = new HashSet<>(); purpose = fillPurpose(purpose); List<PurposePIICategory> purposePIICategories = purpose.getPurposePIICategories(); for (PurposePIICategory purposePIICategory : purposePIICategories) { if (purposePIICategory.getMandatory()) { mandatoryPIIs.add(purposePIICategory.getId()); } } return mandatoryPIIs; }
private Purpose fillPurpose(Purpose purpose) throws ConsentUtilityServiceException { ConsentManager consentManager = IdentityConsentDataHolder.getInstance().getConsentManager(); if (purpose.getPurposePIICategories() != null && purpose.getPurposePIICategories().isEmpty()) { try { purpose = consentManager.getPurpose(purpose.getId()); } catch (ConsentManagementException e) { throw new ConsentUtilityServiceException("Error while retrieving purpose with purpose ID: " + purpose .getId(), e); } } return purpose; }
private ReceiptPurposeInput getReceiptPurposeInput(String consentType, String termination, Purpose purpose, List<PIICategoryValidity> piiCategoryIds, List<Integer> purposeCategoryIds) { ReceiptPurposeInput purposeInput = new ReceiptPurposeInput(); purposeInput.setPrimaryPurpose(true); purposeInput.setTermination(termination); purposeInput.setConsentType(consentType); purposeInput.setThirdPartyDisclosure(false); purposeInput.setPurposeId(purpose.getId()); purposeInput.setPurposeCategoryId(purposeCategoryIds); purposeInput.setPiiCategory(piiCategoryIds); return purposeInput; }
private Purpose addDefaultPurpose() throws SSOConsentServiceException { Purpose purpose; Purpose defaultPurpose = new Purpose(DEFAULT_PURPOSE, "For core functionalities of the product", DEFAULT_PURPOSE_GROUP, DEFAULT_PURPOSE_GROUP_TYPE); try { purpose = getConsentManager().addPurpose(defaultPurpose); } catch (ConsentManagementException e) { throw new SSOConsentServiceException("Consent purpose error", "Error while adding purpose: " + DEFAULT_PURPOSE, e); } return purpose; }
private String getPIIName(int purposeId, int PIIId) throws ConsentUtilityServiceException { ConsentManager consentManager = IdentityConsentDataHolder.getInstance().getConsentManager(); try { Purpose purpose = consentManager.getPurpose(purposeId); List<PurposePIICategory> purposePIICategories = purpose.getPurposePIICategories(); for (PurposePIICategory purposePIICategory : purposePIICategories) { if (purposePIICategory.getId() == PIIId) { return purposePIICategory.getName(); } } } catch (ConsentManagementException e) { throw new ConsentUtilityServiceException("Error while retrieving purpose with id:" + purposeId, e); } throw new ConsentUtilityServiceException("No PII can be found within given id: " + PIIId + "for purpose :" + purposeId); } }