use of io.gravitee.rest.api.service.exceptions.TechnicalManagementException in project gravitee-management-rest-api by gravitee-io.
the class QualityRuleServiceImpl method delete.
@Override
public void delete(final String qualityRule) {
try {
final Optional<QualityRule> qualityRuleOptional = qualityRuleRepository.findById(qualityRule);
if (qualityRuleOptional.isPresent()) {
qualityRuleRepository.delete(qualityRule);
// delete all reference on api quality rule
apiQualityRuleRepository.deleteByQualityRule(qualityRule);
auditService.createEnvironmentAuditLog(Collections.singletonMap(QUALITY_RULE, qualityRule), QualityRule.AuditEvent.QUALITY_RULE_DELETED, new Date(), null, qualityRuleOptional.get());
}
} catch (TechnicalException ex) {
LOGGER.error("An error occurs while trying to delete quality rule {}", qualityRule, ex);
throw new TechnicalManagementException("An error occurs while trying to delete quality rule " + qualityRule, ex);
}
}
use of io.gravitee.rest.api.service.exceptions.TechnicalManagementException in project gravitee-management-rest-api by gravitee-io.
the class QualityRuleServiceImpl method findById.
@Override
public QualityRuleEntity findById(String id) {
try {
LOGGER.debug("Find quality rule by id : {}", id);
Optional<QualityRule> qualityRule = qualityRuleRepository.findById(id);
if (qualityRule.isPresent()) {
return convert(qualityRule.get());
}
throw new QualityRuleNotFoundException(id);
} catch (TechnicalException ex) {
final String error = "An error occurs while trying to find a quality rule using its ID: " + id;
LOGGER.error(error, ex);
throw new TechnicalManagementException(error, ex);
}
}
use of io.gravitee.rest.api.service.exceptions.TechnicalManagementException in project gravitee-management-rest-api by gravitee-io.
the class RatingServiceImpl method findByApi.
@Override
public Page<RatingEntity> findByApi(final String api, final Pageable pageable) {
if (!isEnabled()) {
throw new ApiRatingUnavailableException();
}
try {
final Page<Rating> pageRating = ratingRepository.findByReferenceIdAndReferenceTypePageable(api, RatingReferenceType.API, new PageableBuilder().pageNumber(pageable.pageNumber() - 1).pageSize(pageable.pageSize()).build());
final List<RatingEntity> ratingEntities = pageRating.getContent().stream().map(this::convert).collect(toList());
return new Page<>(ratingEntities, pageRating.getPageNumber(), (int) pageRating.getPageElements(), pageRating.getTotalElements());
} catch (TechnicalException ex) {
LOGGER.error("An error occurred while trying to find ratings for api {}", api, ex);
throw new TechnicalManagementException("An error occurred while trying to find ratings for api " + api, ex);
}
}
use of io.gravitee.rest.api.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 (!isEnabled()) {
throw new ApiRatingUnavailableException();
}
try {
final Rating rating = findModelById(ratingEntity.getId());
final Rating oldRating = new Rating(rating);
if (!rating.getReferenceId().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.getReferenceId(), 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.rest.api.service.exceptions.TechnicalManagementException in project gravitee-management-rest-api by gravitee-io.
the class RatingServiceImpl method delete.
@Override
public void delete(final String id) {
if (!isEnabled()) {
throw new ApiRatingUnavailableException();
}
try {
Rating rating = findModelById(id);
ratingRepository.delete(id);
auditService.createApiAuditLog(rating.getReferenceId(), null, Rating.RatingEvent.RATING_DELETED, new Date(), rating, null);
} catch (TechnicalException ex) {
LOGGER.error("An error occurs while trying to delete rating {}", id, ex);
throw new TechnicalManagementException("An error occurs while trying to delete rating " + id, ex);
}
}
Aggregations