ResponseEntity addSubLedger()

in service/src/main/java/org/apache/fineract/cn/accounting/service/rest/LedgerRestController.java [131:150]


  ResponseEntity<Void> addSubLedger(@PathVariable("identifier") final String identifier,
                                    @RequestBody @Valid final Ledger subLedger) {
    final Optional<Ledger> optionalParentLedger = this.ledgerService.findLedger(identifier);
    if (optionalParentLedger.isPresent()) {
      final Ledger parentLedger = optionalParentLedger.get();
      if (!parentLedger.getType().equals(subLedger.getType())) {
        throw ServiceException.badRequest("Ledger type must be the same.");
      }
    } else {
      throw ServiceException.notFound("Parent ledger {0} not found.", identifier);
    }

    if (this.ledgerService.findLedger(subLedger.getIdentifier()).isPresent()) {
      throw ServiceException.conflict("Ledger {0} already exists.", subLedger.getIdentifier());
    }

    this.commandGateway.process(new AddSubLedgerCommand(identifier, subLedger));

    return ResponseEntity.accepted().build();
  }