/** * This API is used to add a new purpose category. * * @param purposeCategory purpose category element with name and description. * @return 201 created. Return PurposeCategory element with the category ID. * @throws ConsentManagementException Consent Management Exception. */ public PurposeCategory addPurposeCategory(PurposeCategory purposeCategory) throws ConsentManagementException { validateInputParameters(purposeCategory); PurposeCategory category = getPurposeCategoryDAO(purposeCategoryDAOs).addPurposeCategory(purposeCategory); if (log.isDebugEnabled()) { log.debug("Purpose category created successfully with the name: " + category.getName()); } return category; }
private void validateInputParameters(PurposeCategory purposeCategory) throws ConsentManagementException { if (isBlank(purposeCategory.getName())) { if (log.isDebugEnabled()) { log.debug("Purpose Category name cannot be empty"); } throw handleClientException(ERROR_CODE_PURPOSE_CATEGORY_NAME_REQUIRED, null); } if (isPurposeCategoryExists(purposeCategory.getName())) { if (log.isDebugEnabled()) { log.debug("A purpose category already exists with name: " + purposeCategory.getName()); } throw handleClientException(ERROR_CODE_PURPOSE_CATEGORY_ALREADY_EXIST, purposeCategory.getName()); } // Set authenticated user's tenant id if it is not set. if (isBlank(purposeCategory.getTenantDomain())) { purposeCategory.setTenantId(getTenantIdFromCarbonContext()); purposeCategory.setTenantDomain(getTenantDomainFromCarbonContext()); } else { purposeCategory.setTenantId(getTenantId(realmService, purposeCategory.getTenantDomain())); } if (log.isDebugEnabled()) { log.debug("PurposeCategory request validation success: " + purposeCategory.getName()); } }
@Override public PurposeCategory addPurposeCategory(PurposeCategory purposeCategory) throws ConsentManagementException { PurposeCategory purposeCategoryResult; int insertedId; JdbcTemplate jdbcTemplate = JdbcUtils.getNewTemplate(); try { insertedId = jdbcTemplate.executeInsert(INSERT_PURPOSE_CATEGORY_SQL, (preparedStatement -> { preparedStatement.setString(1, purposeCategory.getName()); preparedStatement.setString(2, purposeCategory.getDescription()); preparedStatement.setInt(3, purposeCategory.getTenantId()); }), purposeCategory, true); } catch (DataAccessException e) { throw ConsentUtils.handleServerException(ErrorMessages.ERROR_CODE_ADD_PURPOSE_CATEGORY, purposeCategory .getName(), e); } purposeCategoryResult = new PurposeCategory(insertedId, purposeCategory.getName(), purposeCategory.getDescription(), purposeCategory.getTenantId()); return purposeCategoryResult; }