Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

FINERACT-2169: Replace String json to DTO - for FloatingRatesApiResource #4347

Open
wants to merge 1 commit into
base: develop
Choose a base branch
from

Conversation

oleksma
Copy link

@oleksma oleksma commented Feb 19, 2025

Description

Describe the changes made and why they were made.

Ignore if these details are present on the associated Apache Fineract JIRA ticket.

Checklist

Please make sure these boxes are checked before submitting your pull request - thanks!

  • Write the commit message as per https://github.com/apache/fineract/#pull-requests

  • Acknowledge that we will not review PRs that are not passing the build ("green") - it is your responsibility to get a proposed PR to pass the build, not primarily the project's maintainers.

  • Create/update unit or integration tests for verifying the changes made.

  • Follow coding conventions at https://cwiki.apache.org/confluence/display/FINERACT/Coding+Conventions.

  • Add required Swagger annotation and update API documentation at fineract-provider/src/main/resources/static/legacy-docs/apiLive.htm with details of any API changes

  • Submission is not a "code dump". (Large changes can be made "in repository" via a branch. Ask on the developer mailing list for guidance, if required.)

FYI our guidelines for code reviews are at https://cwiki.apache.org/confluence/display/FINERACT/Code+Review+Guide.

import jakarta.ws.rs.Produces;
import jakarta.ws.rs.core.Context;
import jakarta.validation.Valid;
import jakarta.ws.rs.*;

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please, try to use setting like "import like single class"

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ok

final CommandWrapper commandRequest = new CommandWrapperBuilder().createFloatingRate().withJson(apiRequestBodyAsJson).build();
final CommandProcessingResult result = this.commandsSourceWritePlatformService.logCommandSource(commandRequest);
return this.toApiJsonSerializer.serialize(result);
public CommandProcessingResult createFloatingRate(@Parameter(hidden = true) final @Valid FloatingRateRequest floatingRateRequest) {
Copy link

@VictorPavfurious VictorPavfurious Feb 19, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

final Valid ?? Do you use jakarta annotations somewhere ?

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

For now it not used, it reasonable to remove

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ok, but why did you use Valid annotation here ?=)

}

public List<FloatingRatePeriodResponse> getRatePeriods() {
return ratePeriods;

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Why didn't you use Lombok here for getters/setters?

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Applied getter/setters for this field

@oleksma oleksma force-pushed the FINERACT-2169-Replace-String-json-to-DTO-in-FloatingRatesApiResource branch 2 times, most recently from 4e11298 to d2ba4b0 Compare February 21, 2025 09:04
@oleksma oleksma force-pushed the FINERACT-2169-Replace-String-json-to-DTO-in-FloatingRatesApiResource branch from d2ba4b0 to d86c795 Compare February 24, 2025 07:26
this.context.authenticatedUser().validateHasReadPermission(RESOURCE_NAME);
final List<FloatingRateData> floatingRates = this.floatingRatesReadPlatformService.retrieveAll();
final ApiRequestJsonSerializationSettings settings = this.apiRequestParameterHelper.process(uriInfo.getQueryParameters());
return this.toApiJsonSerializer.serialize(settings, floatingRates, FloatingRatesApiResource.LIST_FLOATING_RATES_PARAMETERS);
return floatingRates.stream().map(data -> new FloatingRateResponse(data.getId(), data.getName(), data.isBaseLendingRate(),
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Why to remap to a different DTO?

Copy link
Author

@oleksma oleksma Feb 24, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is more specific DTO without field List interestRateFrequencyTypeOptions
This field is not used in result for this endpoint

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

API should not remap the service response. Would you mind to revisit this logic and make sure the service provides the wanted response immediately?

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I will revisit logic and review my changes for response

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants