vidakovic commented on code in PR #6013:
URL: https://github.com/apache/fineract/pull/6013#discussion_r3538142789
##########
fineract-rates/src/main/java/org/apache/fineract/portfolio/floatingrates/api/FloatingRatesApiResource.java:
##########
@@ -35,75 +35,75 @@
import jakarta.ws.rs.Produces;
import jakarta.ws.rs.core.MediaType;
import java.util.List;
+import java.util.function.Supplier;
import lombok.RequiredArgsConstructor;
-import org.apache.fineract.commands.domain.CommandWrapper;
-import org.apache.fineract.commands.service.CommandWrapperBuilder;
-import
org.apache.fineract.commands.service.PortfolioCommandSourceWritePlatformService;
-import org.apache.fineract.infrastructure.core.data.CommandProcessingResult;
-import
org.apache.fineract.infrastructure.core.serialization.DefaultToApiJsonSerializer;
-import
org.apache.fineract.infrastructure.security.service.PlatformSecurityContext;
+import org.apache.fineract.command.core.CommandDispatcher;
+import
org.apache.fineract.portfolio.floatingrates.command.FloatingRateCreateCommand;
+import
org.apache.fineract.portfolio.floatingrates.command.FloatingRateUpdateCommand;
+import
org.apache.fineract.portfolio.floatingrates.data.FloatingRateCreateResponse;
import org.apache.fineract.portfolio.floatingrates.data.FloatingRateData;
import org.apache.fineract.portfolio.floatingrates.data.FloatingRateRequest;
-import
org.apache.fineract.portfolio.floatingrates.service.FloatingRatesReadPlatformService;
+import
org.apache.fineract.portfolio.floatingrates.data.FloatingRateUpdateRequest;
+import
org.apache.fineract.portfolio.floatingrates.data.FloatingRateUpdateResponse;
+import
org.apache.fineract.portfolio.floatingrates.service.FloatingRatesReadService;
import org.springframework.stereotype.Component;
@Path("/v1/floatingrates")
+@Produces({ MediaType.APPLICATION_JSON })
@Component
@Tag(name = "Floating Rates", description = "It lets you create, list,
retrieve and upload the floating rates")
@RequiredArgsConstructor
public class FloatingRatesApiResource {
- private static final String RESOURCE_NAME = "FLOATINGRATE";
- private final PlatformSecurityContext context;
- private final PortfolioCommandSourceWritePlatformService
commandsSourceWritePlatformService;
- private final DefaultToApiJsonSerializer<FloatingRateData>
toApiJsonSerializer;
- private final FloatingRatesReadPlatformService
floatingRatesReadPlatformService;
+ private final CommandDispatcher dispatcher;
+ private final FloatingRatesReadService floatingRatesReadService;
@POST
@Consumes({ MediaType.APPLICATION_JSON })
- @Produces({ MediaType.APPLICATION_JSON })
@Operation(summary = "Create a new Floating Rate", operationId =
"createFloatingRate", description = "Creates a new Floating Rate\n"
+ "Mandatory Fields: name\n" + "Optional Fields:
isBaseLendingRate, isActive, ratePeriods")
@RequestBody(required = true, content = @Content(schema =
@Schema(implementation = FloatingRateRequest.class)))
@ApiResponse(responseCode = "200", description = "OK", content =
@Content(schema = @Schema(implementation =
FloatingRatesApiResourceSwagger.PostFloatingRatesResponse.class)))
- public CommandProcessingResult createFloatingRate(@Parameter(hidden =
true) final FloatingRateRequest floatingRateRequest) {
- final CommandWrapper commandRequest = new
CommandWrapperBuilder().createFloatingRate()
-
.withJson(toApiJsonSerializer.serialize(floatingRateRequest)).build();
- return
commandsSourceWritePlatformService.logCommandSource(commandRequest);
+ public FloatingRateCreateResponse createFloatingRate(@Parameter(hidden =
true) final FloatingRateRequest floatingRateRequest) {
+ final FloatingRateCreateCommand command = new
FloatingRateCreateCommand();
+ command.setPayload(floatingRateRequest);
+
+ final Supplier<FloatingRateCreateResponse> response =
dispatcher.dispatch(command);
+
+ return response.get();
}
@GET
- @Produces({ MediaType.APPLICATION_JSON })
@Operation(summary = "List Floating Rates", operationId =
"retrieveAllFloatingRates", description = "Lists Floating Rates")
@ApiResponse(responseCode = "200", description = "OK", content =
@Content(array = @ArraySchema(schema = @Schema(implementation =
FloatingRatesApiResourceSwagger.GetFloatingRatesResponse.class))))
Review Comment:
See previous comment about dummy classes.
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]