use of io.gravitee.rest.api.service.exceptions.CustomUserFieldNotFoundException in project gravitee-management-rest-api by gravitee-io.
the class CustomUserFieldsServiceImpl method update.
@Override
public CustomUserFieldEntity update(CustomUserFieldEntity updateFieldEntity) {
try {
final String refId = GraviteeContext.getCurrentOrganization();
final CustomUserFieldReferenceType refType = ORGANIZATION;
LOGGER.debug("Update custom user field [key={}, refId={}]", updateFieldEntity.getKey(), refId);
Optional<CustomUserField> existingRecord = this.customUserFieldsRepository.findById(formatKeyValue(updateFieldEntity.getKey()), refId, refType);
if (existingRecord.isPresent()) {
CustomUserField fieldToUpdate = map(updateFieldEntity);
fieldToUpdate.setKey(existingRecord.get().getKey());
fieldToUpdate.setReferenceId(existingRecord.get().getReferenceId());
fieldToUpdate.setReferenceType(existingRecord.get().getReferenceType());
fieldToUpdate.setCreatedAt(existingRecord.get().getCreatedAt());
final Date updatedAt = new Date();
fieldToUpdate.setUpdatedAt(updatedAt);
final CustomUserField updatedField = customUserFieldsRepository.update(fieldToUpdate);
createAuditLog(CUSTOM_USER_FIELD_UPDATED, updatedAt, existingRecord.get(), updatedField);
return map(updatedField);
} else {
throw new CustomUserFieldNotFoundException(updateFieldEntity.getKey());
}
} catch (TechnicalException e) {
LOGGER.error("An error occurs while trying to update CustomUserField", e);
throw new TechnicalManagementException("An error occurs while trying to update CustomUserField", e);
}
}
Aggregations