use of io.gravitee.management.service.exceptions.TechnicalManagementException in project gravitee-management-rest-api by gravitee-io.
the class RatingServiceImpl method create.
@Override
public RatingEntity create(final NewRatingEntity ratingEntity) {
if (!enabled) {
throw new ApiRatingUnavailableException();
}
try {
final Optional<Rating> ratingOptional = ratingRepository.findByApiAndUser(ratingEntity.getApi(), getAuthenticatedUsername());
if (ratingOptional.isPresent()) {
throw new RatingAlreadyExistsException(ratingEntity.getApi(), getAuthenticatedUsername());
}
Rating rating = ratingRepository.create(convert(ratingEntity));
auditService.createApiAuditLog(rating.getApi(), null, Rating.RatingEvent.RATING_CREATED, rating.getCreatedAt(), null, rating);
return convert(rating);
} catch (TechnicalException ex) {
LOGGER.error("An error occurred while trying to create rating on api {}", ratingEntity.getApi(), ex);
throw new TechnicalManagementException("An error occurred while trying to create rating on api " + ratingEntity.getApi(), ex);
}
}
use of io.gravitee.management.service.exceptions.TechnicalManagementException in project gravitee-management-rest-api by gravitee-io.
the class RatingServiceImpl method update.
@Override
public RatingEntity update(final UpdateRatingEntity ratingEntity) {
if (!enabled) {
throw new ApiRatingUnavailableException();
}
try {
final Rating rating = findById(ratingEntity.getId());
final Rating oldRating = new Rating(rating);
if (!rating.getApi().equals(ratingEntity.getApi())) {
throw new RatingNotFoundException(ratingEntity.getId(), ratingEntity.getApi());
}
final Date now = new Date();
rating.setUpdatedAt(now);
rating.setRate(ratingEntity.getRate());
// we can save a title/comment only once
if (isBlank(rating.getTitle())) {
rating.setTitle(ratingEntity.getTitle());
}
if (isBlank(rating.getComment())) {
rating.setComment(ratingEntity.getComment());
}
Rating updatedRating = ratingRepository.update(rating);
auditService.createApiAuditLog(rating.getApi(), null, Rating.RatingEvent.RATING_UPDATED, updatedRating.getUpdatedAt(), oldRating, updatedRating);
return convert(updatedRating);
} catch (TechnicalException ex) {
LOGGER.error("An error occurred while trying to update rating {}", ratingEntity.getId(), ex);
throw new TechnicalManagementException("An error occurred while trying to update rating " + ratingEntity.getId(), ex);
}
}
use of io.gravitee.management.service.exceptions.TechnicalManagementException in project gravitee-management-rest-api by gravitee-io.
the class RoleServiceImpl method delete.
@Override
public void delete(final RoleScope scope, final String name) {
if (isReserved(name)) {
throw new RoleReservedNameException(SystemRole.ADMIN.name());
}
try {
Optional<Role> optRole = roleRepository.findById(scope, name);
if (!optRole.isPresent()) {
throw new RoleNotFoundException(scope, name);
}
Role role = optRole.get();
roleRepository.delete(scope, name);
auditService.createPortalAuditLog(Collections.singletonMap(ROLE, role.getScope() + ":" + role.getName()), ROLE_DELETED, role.getUpdatedAt(), role, null);
} catch (TechnicalException ex) {
LOGGER.error("An error occurs while trying to delete role {}/{}", scope, name, ex);
throw new TechnicalManagementException("An error occurs while trying to delete role " + scope + "/" + name, ex);
}
}
use of io.gravitee.management.service.exceptions.TechnicalManagementException in project gravitee-management-rest-api by gravitee-io.
the class RoleServiceImpl method create.
@Override
public RoleEntity create(final NewRoleEntity roleEntity) {
try {
Role role = convert(roleEntity);
if (roleRepository.findById(role.getScope(), role.getName()).isPresent()) {
throw new RoleAlreadyExistsException(role.getScope(), role.getName());
}
role.setCreatedAt(new Date());
role.setUpdatedAt(role.getCreatedAt());
RoleEntity entity = convert(roleRepository.create(role));
auditService.createPortalAuditLog(Collections.singletonMap(ROLE, role.getScope() + ":" + role.getName()), ROLE_CREATED, role.getCreatedAt(), null, role);
if (entity.isDefaultRole()) {
toggleDefaultRole(convert(roleEntity.getScope()), entity.getName());
}
return entity;
} catch (TechnicalException ex) {
LOGGER.error("An error occurs while trying to create role {}", roleEntity.getName(), ex);
throw new TechnicalManagementException("An error occurs while trying to create role " + roleEntity.getName(), ex);
}
}
use of io.gravitee.management.service.exceptions.TechnicalManagementException in project gravitee-management-rest-api by gravitee-io.
the class RoleServiceImpl method update.
@Override
public RoleEntity update(final UpdateRoleEntity roleEntity) {
if (isReserved(roleEntity.getName())) {
throw new RoleReservedNameException(SystemRole.ADMIN.name());
}
RoleScope scope = convert(roleEntity.getScope());
try {
Optional<Role> optRole = roleRepository.findById(scope, roleEntity.getName());
if (!optRole.isPresent()) {
throw new RoleNotFoundException(scope, roleEntity.getName());
}
Role role = optRole.get();
Role updatedRole = convert(roleEntity);
updatedRole.setCreatedAt(role.getCreatedAt());
RoleEntity entity = convert(roleRepository.update(updatedRole));
auditService.createPortalAuditLog(Collections.singletonMap(ROLE, role.getScope() + ":" + role.getName()), ROLE_UPDATED, updatedRole.getUpdatedAt(), role, updatedRole);
if (entity.isDefaultRole()) {
toggleDefaultRole(scope, entity.getName());
}
return entity;
} catch (TechnicalException ex) {
LOGGER.error("An error occurs while trying to update role {}", roleEntity.getName(), ex);
throw new TechnicalManagementException("An error occurs while trying to update role " + roleEntity.getName(), ex);
}
}
Aggregations