in service/src/main/java/org/apache/fineract/cn/deposit/service/rest/ProductDefinitionRestController.java [198:218]
ResponseEntity<Void> changeProductDefinition(@PathVariable("identifier") final String identifier,
@RequestBody @Valid ProductDefinition productDefinition) {
if (!identifier.equals(productDefinition.getIdentifier())) {
throw ServiceException.badRequest("Given product definition must match path {0}.", identifier);
}
final Optional<ProductDefinition> optionalProductDefinition = this.productDefinitionService.findProductDefinition(identifier);
if (!optionalProductDefinition.isPresent()) {
throw ServiceException.notFound("Product Definition {0} not found", identifier);
} else {
final ProductDefinition currentProductDefinition = optionalProductDefinition.get();
if (!currentProductDefinition.getFlexible()
&& !currentProductDefinition.getInterest().equals(productDefinition.getInterest())) {
throw ServiceException.badRequest("Interest of product {0} rate is not flexible.", productDefinition.getIdentifier());
}
}
this.commandGateway.process(new UpdateProductDefinitionCommand(productDefinition));
return ResponseEntity.accepted().build();
}