Search in sources :

Example 1 with UnrecognizedQueryParamException

use of org.apache.fineract.infrastructure.core.exception.UnrecognizedQueryParamException in project fineract by apache.

the class MeetingsApiResource method performMeetingCommands.

@POST
@Path("{meetingId}")
@Consumes({ MediaType.APPLICATION_JSON })
@Produces({ MediaType.APPLICATION_JSON })
public String performMeetingCommands(@PathParam("entityType") final String entityType, @PathParam("entityId") final Long entityId, @PathParam("meetingId") final Long meetingId, @QueryParam("command") final String commandParam, final String apiRequestBodyAsJson) {
    final CommandWrapperBuilder builder = new CommandWrapperBuilder().withJson(apiRequestBodyAsJson);
    CommandProcessingResult result = null;
    if (is(commandParam, "saveOrUpdateAttendance")) {
        final CommandWrapper commandRequest = builder.saveOrUpdateAttendance(meetingId, entityType, entityId).build();
        result = this.commandsSourceWritePlatformService.logCommandSource(commandRequest);
    } else {
        throw new UnrecognizedQueryParamException("command", commandParam, new Object[] { "saveOrUpdateAttendance" });
    }
    return this.toApiJsonSerializer.serialize(result);
}
Also used : CommandWrapperBuilder(org.apache.fineract.commands.service.CommandWrapperBuilder) UnrecognizedQueryParamException(org.apache.fineract.infrastructure.core.exception.UnrecognizedQueryParamException) CommandProcessingResult(org.apache.fineract.infrastructure.core.data.CommandProcessingResult) CommandWrapper(org.apache.fineract.commands.domain.CommandWrapper) Path(javax.ws.rs.Path) POST(javax.ws.rs.POST) Consumes(javax.ws.rs.Consumes) Produces(javax.ws.rs.Produces)

Example 2 with UnrecognizedQueryParamException

use of org.apache.fineract.infrastructure.core.exception.UnrecognizedQueryParamException in project fineract by apache.

the class LoanTransactionsApiResource method executeLoanTransaction.

@POST
@Consumes({ MediaType.APPLICATION_JSON })
@Produces({ MediaType.APPLICATION_JSON })
@Operation(summary = "Make a Repayment | Make a Refund of an Active Loan by Cash | Foreclosure of an Active Loan | Waive Interest | Write-off Loan | Make Recovery Payment | Undo Loan Write-off Transaction", description = "Make Recovery Payment:\n\n" + "This API allows collecting recovery payments for written-off loans")
@RequestBody(required = true, content = @Content(schema = @Schema(implementation = LoanTransactionsApiResourceSwagger.PostLoansLoanIdTransactionsRequest.class)))
@ApiResponses({ @ApiResponse(responseCode = "200", description = "OK", content = @Content(schema = @Schema(implementation = LoanTransactionsApiResourceSwagger.PostLoansLoanIdTransactionsResponse.class))) })
public String executeLoanTransaction(@PathParam("loanId") @Parameter(description = "loanId") final Long loanId, @QueryParam("command") @Parameter(description = "command") final String commandParam, @Parameter(hidden = true) final String apiRequestBodyAsJson) {
    final CommandWrapperBuilder builder = new CommandWrapperBuilder().withJson(apiRequestBodyAsJson);
    CommandProcessingResult result = null;
    if (is(commandParam, "repayment")) {
        final CommandWrapper commandRequest = builder.loanRepaymentTransaction(loanId).build();
        result = this.commandsSourceWritePlatformService.logCommandSource(commandRequest);
    } else if (is(commandParam, "waiveinterest")) {
        final CommandWrapper commandRequest = builder.waiveInterestPortionTransaction(loanId).build();
        result = this.commandsSourceWritePlatformService.logCommandSource(commandRequest);
    } else if (is(commandParam, "writeoff")) {
        final CommandWrapper commandRequest = builder.writeOffLoanTransaction(loanId).build();
        result = this.commandsSourceWritePlatformService.logCommandSource(commandRequest);
    } else if (is(commandParam, "close-rescheduled")) {
        final CommandWrapper commandRequest = builder.closeLoanAsRescheduledTransaction(loanId).build();
        result = this.commandsSourceWritePlatformService.logCommandSource(commandRequest);
    } else if (is(commandParam, "close")) {
        final CommandWrapper commandRequest = builder.closeLoanTransaction(loanId).build();
        result = this.commandsSourceWritePlatformService.logCommandSource(commandRequest);
    } else if (is(commandParam, "undowriteoff")) {
        final CommandWrapper commandRequest = builder.undoWriteOffLoanTransaction(loanId).build();
        result = this.commandsSourceWritePlatformService.logCommandSource(commandRequest);
    } else if (is(commandParam, "recoverypayment")) {
        final CommandWrapper commandRequest = builder.loanRecoveryPaymentTransaction(loanId).build();
        result = this.commandsSourceWritePlatformService.logCommandSource(commandRequest);
    } else if (is(commandParam, "refundByCash")) {
        final CommandWrapper commandRequest = builder.refundLoanTransactionByCash(loanId).build();
        result = this.commandsSourceWritePlatformService.logCommandSource(commandRequest);
    } else if (is(commandParam, "foreclosure")) {
        final CommandWrapper commandRequest = builder.loanForeclosure(loanId).build();
        result = this.commandsSourceWritePlatformService.logCommandSource(commandRequest);
    }
    if (result == null) {
        throw new UnrecognizedQueryParamException("command", commandParam);
    }
    return this.toApiJsonSerializer.serialize(result);
}
Also used : CommandWrapperBuilder(org.apache.fineract.commands.service.CommandWrapperBuilder) UnrecognizedQueryParamException(org.apache.fineract.infrastructure.core.exception.UnrecognizedQueryParamException) CommandProcessingResult(org.apache.fineract.infrastructure.core.data.CommandProcessingResult) CommandWrapper(org.apache.fineract.commands.domain.CommandWrapper) POST(javax.ws.rs.POST) Consumes(javax.ws.rs.Consumes) Produces(javax.ws.rs.Produces) Operation(io.swagger.v3.oas.annotations.Operation) ApiResponses(io.swagger.v3.oas.annotations.responses.ApiResponses) RequestBody(io.swagger.v3.oas.annotations.parameters.RequestBody)

Example 3 with UnrecognizedQueryParamException

use of org.apache.fineract.infrastructure.core.exception.UnrecognizedQueryParamException in project fineract by apache.

the class LoansApiResource method stateTransitions.

@POST
@Path("{loanId}")
@Consumes({ MediaType.APPLICATION_JSON })
@Produces({ MediaType.APPLICATION_JSON })
@Operation(summary = "Approve Loan Application | Recover Loan Guarantee | Undo Loan Application Approval | Assign a Loan Officer | Unassign a Loan Officer | Reject Loan Application | Applicant Withdraws from Loan Application | Disburse Loan Disburse Loan To Savings Account | Undo Loan Disbursal", description = "Approve Loan Application:\n" + "Mandatory Fields: approvedOnDate\n" + "Optional Fields: approvedLoanAmount and expectedDisbursementDate\n" + "Approves the loan application\n\n" + "Recover Loan Guarantee:\n" + "Recovers the loan guarantee\n\n" + "Undo Loan Application Approval:\n" + "Undoes the Loan Application Approval\n\n" + "Assign a Loan Officer:\n" + "Allows you to assign Loan Officer for existing Loan.\n\n" + "Unassign a Loan Officer:\n" + "Allows you to unassign the Loan Officer.\n\n" + "Reject Loan Application:\n" + "Mandatory Fields: rejectedOnDate\n" + "Allows you to reject the loan application\n\n" + "Applicant Withdraws from Loan Application:\n" + "Mandatory Fields: withdrawnOnDate\n" + "Allows the applicant to withdraw the loan application\n\n" + "Disburse Loan:\n" + "Mandatory Fields: actualDisbursementDate\n" + "Optional Fields: transactionAmount and fixedEmiAmount\n" + "Disburses the Loan\n\n" + "Disburse Loan To Savings Account:\n" + "Mandatory Fields: actualDisbursementDate\n" + "Optional Fields: transactionAmount and fixedEmiAmount\n" + "Disburses the loan to Saving Account\n\n" + "Undo Loan Disbursal:\n" + "Undoes the Loan Disbursal\n" + "Showing request and response for Assign a Loan Officer")
@RequestBody(required = true, content = @Content(schema = @Schema(implementation = LoansApiResourceSwagger.PostLoansLoanIdRequest.class)))
@ApiResponses({ @ApiResponse(responseCode = "200", description = "OK", content = @Content(schema = @Schema(implementation = LoansApiResourceSwagger.PostLoansLoanIdResponse.class))) })
public String stateTransitions(@PathParam("loanId") @Parameter(description = "loanId") final Long loanId, @QueryParam("command") @Parameter(description = "command") final String commandParam, @Parameter(hidden = true) final String apiRequestBodyAsJson) {
    final CommandWrapperBuilder builder = new CommandWrapperBuilder().withJson(apiRequestBodyAsJson);
    CommandProcessingResult result = null;
    if (is(commandParam, "reject")) {
        final CommandWrapper commandRequest = builder.rejectLoanApplication(loanId).build();
        result = this.commandsSourceWritePlatformService.logCommandSource(commandRequest);
    } else if (is(commandParam, "withdrawnByApplicant")) {
        final CommandWrapper commandRequest = builder.withdrawLoanApplication(loanId).build();
        result = this.commandsSourceWritePlatformService.logCommandSource(commandRequest);
    } else if (is(commandParam, "approve")) {
        final CommandWrapper commandRequest = builder.approveLoanApplication(loanId).build();
        result = this.commandsSourceWritePlatformService.logCommandSource(commandRequest);
    } else if (is(commandParam, "disburse")) {
        final CommandWrapper commandRequest = builder.disburseLoanApplication(loanId).build();
        result = this.commandsSourceWritePlatformService.logCommandSource(commandRequest);
    } else if (is(commandParam, "disburseToSavings")) {
        final CommandWrapper commandRequest = builder.disburseLoanToSavingsApplication(loanId).build();
        result = this.commandsSourceWritePlatformService.logCommandSource(commandRequest);
    }
    if (is(commandParam, "undoapproval")) {
        final CommandWrapper commandRequest = builder.undoLoanApplicationApproval(loanId).build();
        result = this.commandsSourceWritePlatformService.logCommandSource(commandRequest);
    } else if (is(commandParam, "undodisbursal")) {
        final CommandWrapper commandRequest = builder.undoLoanApplicationDisbursal(loanId).build();
        result = this.commandsSourceWritePlatformService.logCommandSource(commandRequest);
    } else if (is(commandParam, "undolastdisbursal")) {
        final CommandWrapper commandRequest = builder.undoLastDisbursalLoanApplication(loanId).build();
        result = this.commandsSourceWritePlatformService.logCommandSource(commandRequest);
    }
    if (is(commandParam, "assignloanofficer")) {
        final CommandWrapper commandRequest = builder.assignLoanOfficer(loanId).build();
        result = this.commandsSourceWritePlatformService.logCommandSource(commandRequest);
    } else if (is(commandParam, "unassignloanofficer")) {
        final CommandWrapper commandRequest = builder.unassignLoanOfficer(loanId).build();
        result = this.commandsSourceWritePlatformService.logCommandSource(commandRequest);
    } else if (is(commandParam, "recoverGuarantees")) {
        final CommandWrapper commandRequest = new CommandWrapperBuilder().recoverFromGuarantor(loanId).build();
        result = this.commandsSourceWritePlatformService.logCommandSource(commandRequest);
    }
    if (result == null) {
        throw new UnrecognizedQueryParamException("command", commandParam);
    }
    return this.toApiJsonSerializer.serialize(result);
}
Also used : CommandWrapperBuilder(org.apache.fineract.commands.service.CommandWrapperBuilder) UnrecognizedQueryParamException(org.apache.fineract.infrastructure.core.exception.UnrecognizedQueryParamException) CommandProcessingResult(org.apache.fineract.infrastructure.core.data.CommandProcessingResult) CommandWrapper(org.apache.fineract.commands.domain.CommandWrapper) Path(javax.ws.rs.Path) POST(javax.ws.rs.POST) Consumes(javax.ws.rs.Consumes) Produces(javax.ws.rs.Produces) Operation(io.swagger.v3.oas.annotations.Operation) ApiResponses(io.swagger.v3.oas.annotations.responses.ApiResponses) RequestBody(io.swagger.v3.oas.annotations.parameters.RequestBody)

Example 4 with UnrecognizedQueryParamException

use of org.apache.fineract.infrastructure.core.exception.UnrecognizedQueryParamException in project fineract by apache.

the class ClientChargesApiResource method retrieveAllClientCharges.

@GET
@Consumes({ MediaType.APPLICATION_JSON })
@Produces({ MediaType.APPLICATION_JSON })
@Operation(summary = "List Client Charges", description = "The list capability of client charges supports pagination." + "Example Requests:\n" + "clients/1/charges\n" + "\nclients/1/charges?offset=0&limit=5")
@ApiResponses({ @ApiResponse(responseCode = "200", description = "OK", content = @Content(schema = @Schema(implementation = ClientChargesApiResourceSwagger.GetClientsClientIdChargesResponse.class))) })
public String retrieveAllClientCharges(@PathParam("clientId") @Parameter(description = "clientId") final Long clientId, @DefaultValue(ClientApiConstants.CLIENT_CHARGE_QUERY_PARAM_STATUS_VALUE_ALL) @QueryParam(ClientApiConstants.CLIENT_CHARGE_QUERY_PARAM_STATUS) @Parameter(description = "chargeStatus") final String chargeStatus, @QueryParam("pendingPayment") @Parameter(description = "pendingPayment") final Boolean pendingPayment, @Context final UriInfo uriInfo, @QueryParam("limit") @Parameter(description = "limit") final Integer limit, @QueryParam("offset") @Parameter(description = "offset") final Integer offset) {
    this.context.authenticatedUser().validateHasReadPermission(ClientApiConstants.CLIENT_CHARGES_RESOURCE_NAME);
    final ApiRequestJsonSerializationSettings settings = this.apiRequestParameterHelper.process(uriInfo.getQueryParameters());
    if (!(is(chargeStatus, ClientApiConstants.CLIENT_CHARGE_QUERY_PARAM_STATUS_VALUE_ALL) || is(chargeStatus, ClientApiConstants.CLIENT_CHARGE_QUERY_PARAM_STATUS_VALUE_ACTIVE) || is(chargeStatus, ClientApiConstants.CLIENT_CHARGE_QUERY_PARAM_STATUS_VALUE_INACTIVE))) {
        throw new UnrecognizedQueryParamException(ClientApiConstants.CLIENT_CHARGE_QUERY_PARAM_STATUS, chargeStatus, new Object[] { ClientApiConstants.CLIENT_CHARGE_QUERY_PARAM_STATUS_VALUE_ALL, ClientApiConstants.CLIENT_CHARGE_QUERY_PARAM_STATUS_VALUE_ACTIVE, ClientApiConstants.CLIENT_CHARGE_QUERY_PARAM_STATUS_VALUE_INACTIVE });
    }
    final SearchParameters searchParameters = SearchParameters.forPagination(offset, limit);
    final Page<ClientChargeData> clientCharges = this.clientChargeReadPlatformService.retrieveClientCharges(clientId, chargeStatus, pendingPayment, searchParameters);
    return this.toApiJsonSerializer.serialize(settings, clientCharges, ClientApiConstants.CLIENT_CHARGES_RESPONSE_DATA_PARAMETERS);
}
Also used : SearchParameters(org.apache.fineract.infrastructure.core.service.SearchParameters) UnrecognizedQueryParamException(org.apache.fineract.infrastructure.core.exception.UnrecognizedQueryParamException) ClientChargeData(org.apache.fineract.portfolio.client.data.ClientChargeData) ApiRequestJsonSerializationSettings(org.apache.fineract.infrastructure.core.serialization.ApiRequestJsonSerializationSettings) Consumes(javax.ws.rs.Consumes) Produces(javax.ws.rs.Produces) GET(javax.ws.rs.GET) Operation(io.swagger.v3.oas.annotations.Operation) ApiResponses(io.swagger.v3.oas.annotations.responses.ApiResponses)

Example 5 with UnrecognizedQueryParamException

use of org.apache.fineract.infrastructure.core.exception.UnrecognizedQueryParamException in project fineract by apache.

the class ClientChargesApiResource method payOrWaiveClientCharge.

@POST
@Path("{chargeId}")
@Consumes({ MediaType.APPLICATION_JSON })
@Produces({ MediaType.APPLICATION_JSON })
@Operation(summary = "Pay a Client Charge | Waive a Client Charge", description = "Pay a Client Charge:\n\n" + "Mandatory Fields:" + "transactionDate and amount " + "" + "\"Pay either a part of or the entire due amount for a charge.(command=paycharge)\n" + "\n" + "Waive a Client Charge:\n" + "\n" + "\n" + "This API provides the facility of waiving off the remaining amount on a client charge (command=waive)\n\n" + "Showing request/response for 'Pay a Client Charge'")
@RequestBody(required = true, content = @Content(schema = @Schema(implementation = ClientChargesApiResourceSwagger.PostClientsClientIdChargesChargeIdRequest.class)))
@ApiResponses({ @ApiResponse(responseCode = "200", description = "OK", content = @Content(schema = @Schema(implementation = ClientChargesApiResourceSwagger.PostClientsClientIdChargesChargeIdResponse.class))) })
public String payOrWaiveClientCharge(@PathParam("clientId") @Parameter(description = "clientId") final Long clientId, @PathParam("chargeId") @Parameter(description = "chargeId") final Long chargeId, @QueryParam("command") @Parameter(description = "command") final String commandParam, @Parameter(hidden = true) final String apiRequestBodyAsJson) {
    String json = "";
    if (is(commandParam, ClientApiConstants.CLIENT_CHARGE_COMMAND_WAIVE_CHARGE)) {
        final CommandWrapper commandRequest = new CommandWrapperBuilder().waiveClientCharge(clientId, chargeId).withJson(apiRequestBodyAsJson).build();
        final CommandProcessingResult result = this.commandsSourceWritePlatformService.logCommandSource(commandRequest);
        json = this.toApiJsonSerializer.serialize(result);
    } else if (is(commandParam, ClientApiConstants.CLIENT_CHARGE_COMMAND_PAY_CHARGE)) {
        final CommandWrapper commandRequest = new CommandWrapperBuilder().payClientCharge(clientId, chargeId).withJson(apiRequestBodyAsJson).build();
        final CommandProcessingResult result = this.commandsSourceWritePlatformService.logCommandSource(commandRequest);
        json = this.toApiJsonSerializer.serialize(result);
    } else if (is(commandParam, ClientApiConstants.CLIENT_CHARGE_COMMAND_INACTIVATE_CHARGE)) {
        final CommandWrapper commandRequest = new CommandWrapperBuilder().inactivateClientCharge(clientId, chargeId).build();
        final CommandProcessingResult result = this.commandsSourceWritePlatformService.logCommandSource(commandRequest);
        json = this.toApiJsonSerializer.serialize(result);
    } else {
        throw new UnrecognizedQueryParamException("command", commandParam, ClientApiConstants.CLIENT_CHARGE_COMMAND_WAIVE_CHARGE, ClientApiConstants.CLIENT_CHARGE_COMMAND_PAY_CHARGE, ClientApiConstants.CLIENT_CHARGE_COMMAND_INACTIVATE_CHARGE);
    }
    return json;
}
Also used : CommandWrapperBuilder(org.apache.fineract.commands.service.CommandWrapperBuilder) UnrecognizedQueryParamException(org.apache.fineract.infrastructure.core.exception.UnrecognizedQueryParamException) CommandWrapper(org.apache.fineract.commands.domain.CommandWrapper) CommandProcessingResult(org.apache.fineract.infrastructure.core.data.CommandProcessingResult) Path(javax.ws.rs.Path) POST(javax.ws.rs.POST) Consumes(javax.ws.rs.Consumes) Produces(javax.ws.rs.Produces) Operation(io.swagger.v3.oas.annotations.Operation) ApiResponses(io.swagger.v3.oas.annotations.responses.ApiResponses) RequestBody(io.swagger.v3.oas.annotations.parameters.RequestBody)

Aggregations

UnrecognizedQueryParamException (org.apache.fineract.infrastructure.core.exception.UnrecognizedQueryParamException)40 Consumes (javax.ws.rs.Consumes)37 Produces (javax.ws.rs.Produces)37 Operation (io.swagger.v3.oas.annotations.Operation)29 ApiResponses (io.swagger.v3.oas.annotations.responses.ApiResponses)29 Path (javax.ws.rs.Path)29 POST (javax.ws.rs.POST)28 CommandWrapper (org.apache.fineract.commands.domain.CommandWrapper)28 CommandWrapperBuilder (org.apache.fineract.commands.service.CommandWrapperBuilder)28 CommandProcessingResult (org.apache.fineract.infrastructure.core.data.CommandProcessingResult)28 RequestBody (io.swagger.v3.oas.annotations.parameters.RequestBody)18 ApiRequestJsonSerializationSettings (org.apache.fineract.infrastructure.core.serialization.ApiRequestJsonSerializationSettings)12 GET (javax.ws.rs.GET)8 JsonElement (com.google.gson.JsonElement)4 JsonQuery (org.apache.fineract.infrastructure.core.api.JsonQuery)4 HashSet (java.util.HashSet)3 ApiResponse (io.swagger.v3.oas.annotations.responses.ApiResponse)2 PUT (javax.ws.rs.PUT)2 Response (javax.ws.rs.core.Response)2 NoAuthorizationException (org.apache.fineract.infrastructure.security.exception.NoAuthorizationException)2