FINERACT-2169: refactoring FloatingRatesApiResource - update swagger docs
This commit is contained in:
committed by
Adam Saghy
parent
7dd058b5f1
commit
f73b352727
+2
-11
@@ -35,10 +35,7 @@ import jakarta.ws.rs.Path;
|
||||
import jakarta.ws.rs.PathParam;
|
||||
import jakarta.ws.rs.Produces;
|
||||
import jakarta.ws.rs.core.MediaType;
|
||||
import java.util.Arrays;
|
||||
import java.util.HashSet;
|
||||
import java.util.List;
|
||||
import java.util.Set;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.apache.fineract.commands.domain.CommandWrapper;
|
||||
import org.apache.fineract.commands.service.CommandWrapperBuilder;
|
||||
@@ -58,10 +55,6 @@ import org.springframework.stereotype.Component;
|
||||
public class FloatingRatesApiResource {
|
||||
|
||||
private static final String RESOURCE_NAME = "FLOATINGRATE";
|
||||
private static final Set<String> LIST_FLOATING_RATES_PARAMETERS = new HashSet<>(
|
||||
Arrays.asList("id", "name", "isBaseLendingRate", "isActive", "createdby", "createdOn", "modifiedBy", "modifiedOn"));
|
||||
private static final Set<String> INDIVIDUAL_FLOATING_RATES_PARAMETERS = new HashSet<>(Arrays.asList("id", "name", "isBaseLendingRate",
|
||||
"isActive", "createdBy", "createdOn", "modifiedBy", "modifiedOn", "ratePeriods"));
|
||||
private final PlatformSecurityContext context;
|
||||
private final PortfolioCommandSourceWritePlatformService commandsSourceWritePlatformService;
|
||||
private final DefaultToApiJsonSerializer<FloatingRateData> toApiJsonSerializer;
|
||||
@@ -72,7 +65,7 @@ public class FloatingRatesApiResource {
|
||||
@Produces({ MediaType.APPLICATION_JSON })
|
||||
@Operation(summary = "Create a new Floating Rate", description = "Creates a new Floating Rate\n" + "Mandatory Fields: name\n"
|
||||
+ "Optional Fields: isBaseLendingRate, isActive, ratePeriods")
|
||||
@RequestBody(required = true, content = @Content(schema = @Schema(implementation = FloatingRatesApiResourceSwagger.PostFloatingRatesRequest.class)))
|
||||
@RequestBody(required = true, content = @Content(schema = @Schema(implementation = FloatingRateRequest.class)))
|
||||
@ApiResponses({
|
||||
@ApiResponse(responseCode = "200", description = "OK", content = @Content(schema = @Schema(implementation = FloatingRatesApiResourceSwagger.PostFloatingRatesResponse.class))) })
|
||||
public CommandProcessingResult createFloatingRate(@Parameter(hidden = true) final FloatingRateRequest floatingRateRequest) {
|
||||
@@ -97,8 +90,6 @@ public class FloatingRatesApiResource {
|
||||
@Consumes({ MediaType.APPLICATION_JSON })
|
||||
@Produces({ MediaType.APPLICATION_JSON })
|
||||
@Operation(summary = "Retrieve Floating Rate", description = "Retrieves Floating Rate")
|
||||
@ApiResponses({
|
||||
@ApiResponse(responseCode = "200", description = "OK", content = @Content(schema = @Schema(implementation = FloatingRatesApiResourceSwagger.GetFloatingRatesFloatingRateIdResponse.class))) })
|
||||
public FloatingRateData retrieveOne(@PathParam("floatingRateId") @Parameter(description = "floatingRateId") final Long floatingRateId) {
|
||||
this.context.authenticatedUser().validateHasReadPermission(RESOURCE_NAME);
|
||||
return floatingRatesReadPlatformService.retrieveOne(floatingRateId);
|
||||
@@ -109,7 +100,7 @@ public class FloatingRatesApiResource {
|
||||
@Consumes({ MediaType.APPLICATION_JSON })
|
||||
@Produces({ MediaType.APPLICATION_JSON })
|
||||
@Operation(summary = "Update Floating Rate", description = "Updates new Floating Rate. Rate Periods in the past cannot be modified. All the future rateperiods would be replaced with the new ratePeriods data sent.")
|
||||
@RequestBody(required = true, content = @Content(schema = @Schema(implementation = FloatingRatesApiResourceSwagger.PutFloatingRatesFloatingRateIdRequest.class)))
|
||||
@RequestBody(required = true, content = @Content(schema = @Schema(implementation = FloatingRateRequest.class)))
|
||||
@ApiResponses({
|
||||
@ApiResponse(responseCode = "200", description = "OK", content = @Content(schema = @Schema(implementation = FloatingRatesApiResourceSwagger.PutFloatingRatesFloatingRateIdResponse.class))) })
|
||||
public CommandProcessingResult updateFloatingRate(
|
||||
|
||||
-62
@@ -88,68 +88,6 @@ final class FloatingRatesApiResourceSwagger {
|
||||
public String modifiedOn;
|
||||
}
|
||||
|
||||
@Schema(description = "GetFloatingRatesFloatingRateIdResponse")
|
||||
public static final class GetFloatingRatesFloatingRateIdResponse {
|
||||
|
||||
private GetFloatingRatesFloatingRateIdResponse() {}
|
||||
|
||||
static final class GetFloatingRatesRatePeriods {
|
||||
|
||||
private GetFloatingRatesRatePeriods() {}
|
||||
|
||||
@Schema(example = "1")
|
||||
public Long id;
|
||||
@Schema(example = "Dec 15, 2015")
|
||||
public String fromDate;
|
||||
@Schema(example = "11")
|
||||
public Double interestRate;
|
||||
@Schema(example = "false")
|
||||
public Boolean isDifferentialToBaseLendingRate;
|
||||
@Schema(example = "true")
|
||||
public Boolean isActive;
|
||||
@Schema(example = "mifos")
|
||||
public String createdBy;
|
||||
@Schema(example = "Nov 18, 2015")
|
||||
public String createdOn;
|
||||
@Schema(example = "mifos")
|
||||
public String modifiedBy;
|
||||
@Schema(example = "Nov 18, 2015")
|
||||
public String modifiedOn;
|
||||
}
|
||||
|
||||
@Schema(example = "1")
|
||||
public Long id;
|
||||
@Schema(example = "Floating Rate 1")
|
||||
public String name;
|
||||
@Schema(example = "true")
|
||||
public Boolean isBaseLendingRate;
|
||||
@Schema(example = "true")
|
||||
public Boolean isActive;
|
||||
@Schema(example = "mifos")
|
||||
public String createdBy;
|
||||
@Schema(example = "Nov 18, 2015")
|
||||
public String createdOn;
|
||||
@Schema(example = "mifos")
|
||||
public String modifiedBy;
|
||||
@Schema(example = "Nov 18, 2015")
|
||||
public String modifiedOn;
|
||||
public Set<GetFloatingRatesRatePeriods> ratePeriods;
|
||||
}
|
||||
|
||||
@Schema(description = "PutFloatingRatesFloatingRateIdRequest")
|
||||
public static final class PutFloatingRatesFloatingRateIdRequest {
|
||||
|
||||
private PutFloatingRatesFloatingRateIdRequest() {}
|
||||
|
||||
@Schema(example = "Floating Rate 1")
|
||||
public String name;
|
||||
@Schema(example = "true")
|
||||
public Boolean isBaseLendingRate;
|
||||
@Schema(example = "true")
|
||||
public Boolean isActive;
|
||||
public Set<PostFloatingRatesRequest.PostFloatingRatesRatePeriods> ratePeriods;
|
||||
}
|
||||
|
||||
@Schema(description = "PutFloatingRatesFloatingRateIdResponse")
|
||||
public static final class PutFloatingRatesFloatingRateIdResponse {
|
||||
|
||||
|
||||
+5
-45
@@ -18,34 +18,30 @@
|
||||
*/
|
||||
package org.apache.fineract.portfolio.floatingrates.data;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonInclude;
|
||||
import com.fasterxml.jackson.annotation.JsonProperty;
|
||||
import java.io.Serializable;
|
||||
import java.time.OffsetDateTime;
|
||||
import java.util.List;
|
||||
import lombok.Getter;
|
||||
import org.apache.commons.lang3.builder.CompareToBuilder;
|
||||
import org.apache.commons.lang3.builder.EqualsBuilder;
|
||||
import org.apache.commons.lang3.builder.HashCodeBuilder;
|
||||
import org.apache.fineract.infrastructure.core.data.EnumOptionData;
|
||||
|
||||
@JsonInclude(JsonInclude.Include.NON_NULL)
|
||||
@Getter
|
||||
public class FloatingRateData implements Comparable<FloatingRateData>, Serializable {
|
||||
|
||||
private final Long id;
|
||||
private final String name;
|
||||
@JsonProperty("isBaseLendingRate")
|
||||
private final boolean isBaseLendingRate;
|
||||
@JsonProperty("isActive")
|
||||
private final boolean isActive;
|
||||
private final Boolean isBaseLendingRate;
|
||||
private final Boolean isActive;
|
||||
private final String createdBy;
|
||||
private final OffsetDateTime createdOn;
|
||||
private final String modifiedBy;
|
||||
private final OffsetDateTime modifiedOn;
|
||||
private final List<FloatingRatePeriodData> ratePeriods;
|
||||
@SuppressWarnings("unused")
|
||||
private final List<EnumOptionData> interestRateFrequencyTypeOptions;
|
||||
|
||||
public FloatingRateData(Long id, String name, boolean isBaseLendingRate, boolean isActive, String createdBy, OffsetDateTime createdOn,
|
||||
public FloatingRateData(Long id, String name, Boolean isBaseLendingRate, Boolean isActive, String createdBy, OffsetDateTime createdOn,
|
||||
String modifiedBy, OffsetDateTime modifiedOn, List<FloatingRatePeriodData> ratePeriods,
|
||||
List<EnumOptionData> interestRateFrequencyTypeOptions) {
|
||||
this.id = id;
|
||||
@@ -60,42 +56,6 @@ public class FloatingRateData implements Comparable<FloatingRateData>, Serializa
|
||||
this.interestRateFrequencyTypeOptions = interestRateFrequencyTypeOptions;
|
||||
}
|
||||
|
||||
public Long getId() {
|
||||
return this.id;
|
||||
}
|
||||
|
||||
public String getName() {
|
||||
return this.name;
|
||||
}
|
||||
|
||||
public boolean isBaseLendingRate() {
|
||||
return this.isBaseLendingRate;
|
||||
}
|
||||
|
||||
public boolean isActive() {
|
||||
return this.isActive;
|
||||
}
|
||||
|
||||
public String getCreatedBy() {
|
||||
return this.createdBy;
|
||||
}
|
||||
|
||||
public OffsetDateTime getCreatedOn() {
|
||||
return this.createdOn;
|
||||
}
|
||||
|
||||
public String getModifiedBy() {
|
||||
return this.modifiedBy;
|
||||
}
|
||||
|
||||
public OffsetDateTime getModifiedOn() {
|
||||
return this.modifiedOn;
|
||||
}
|
||||
|
||||
public List<FloatingRatePeriodData> getRatePeriods() {
|
||||
return this.ratePeriods;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int compareTo(final FloatingRateData obj) {
|
||||
if (obj == null) {
|
||||
|
||||
+10
-45
@@ -18,33 +18,33 @@
|
||||
*/
|
||||
package org.apache.fineract.portfolio.floatingrates.data;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonIgnore;
|
||||
import com.fasterxml.jackson.annotation.JsonInclude;
|
||||
import com.fasterxml.jackson.annotation.JsonProperty;
|
||||
import java.io.Serializable;
|
||||
import java.math.BigDecimal;
|
||||
import java.time.LocalDate;
|
||||
import java.time.OffsetDateTime;
|
||||
import lombok.Getter;
|
||||
import org.apache.commons.lang3.builder.CompareToBuilder;
|
||||
import org.apache.commons.lang3.builder.EqualsBuilder;
|
||||
import org.apache.commons.lang3.builder.HashCodeBuilder;
|
||||
|
||||
@Getter
|
||||
@JsonInclude(JsonInclude.Include.NON_NULL)
|
||||
public class FloatingRatePeriodData implements Comparable<FloatingRatePeriodData>, Serializable {
|
||||
|
||||
private Long id;
|
||||
private LocalDate fromDate;
|
||||
private BigDecimal interestRate;
|
||||
@JsonProperty("isDifferentialToBaseLendingRate")
|
||||
private boolean isDifferentialToBaseLendingRate;
|
||||
@JsonProperty("isActive")
|
||||
private boolean isActive;
|
||||
private Boolean isDifferentialToBaseLendingRate;
|
||||
private Boolean isActive;
|
||||
private String createdBy;
|
||||
private OffsetDateTime createdOn;
|
||||
private String modifiedBy;
|
||||
private OffsetDateTime modifiedOn;
|
||||
|
||||
public FloatingRatePeriodData(Long id, LocalDate fromDate, BigDecimal interestRate, boolean isDifferentialToBaseLendingRate,
|
||||
boolean isActive, String createdBy, OffsetDateTime createdOn, String modifiedBy, OffsetDateTime modifiedOn) {
|
||||
public FloatingRatePeriodData(Long id, LocalDate fromDate, BigDecimal interestRate, Boolean isDifferentialToBaseLendingRate,
|
||||
Boolean isActive, String createdBy, OffsetDateTime createdOn, String modifiedBy, OffsetDateTime modifiedOn) {
|
||||
this.id = id;
|
||||
this.fromDate = fromDate;
|
||||
this.interestRate = interestRate;
|
||||
@@ -56,8 +56,8 @@ public class FloatingRatePeriodData implements Comparable<FloatingRatePeriodData
|
||||
this.modifiedOn = modifiedOn;
|
||||
}
|
||||
|
||||
public FloatingRatePeriodData(Long id, LocalDate fromDate, BigDecimal interestRate, boolean isDifferentialToBaseLendingRate,
|
||||
boolean isActive) {
|
||||
public FloatingRatePeriodData(Long id, LocalDate fromDate, BigDecimal interestRate, Boolean isDifferentialToBaseLendingRate,
|
||||
Boolean isActive) {
|
||||
this.id = id;
|
||||
this.fromDate = fromDate;
|
||||
this.interestRate = interestRate;
|
||||
@@ -65,46 +65,11 @@ public class FloatingRatePeriodData implements Comparable<FloatingRatePeriodData
|
||||
this.isActive = isActive;
|
||||
}
|
||||
|
||||
public Long getId() {
|
||||
return this.id;
|
||||
}
|
||||
|
||||
public LocalDate getFromDate() {
|
||||
return this.fromDate;
|
||||
}
|
||||
|
||||
@JsonIgnore
|
||||
public LocalDate getFromDateAsLocalDate() {
|
||||
return this.fromDate;
|
||||
}
|
||||
|
||||
public BigDecimal getInterestRate() {
|
||||
return this.interestRate;
|
||||
}
|
||||
|
||||
public boolean isDifferentialToBaseLendingRate() {
|
||||
return this.isDifferentialToBaseLendingRate;
|
||||
}
|
||||
|
||||
public boolean isActive() {
|
||||
return this.isActive;
|
||||
}
|
||||
|
||||
public String getCreatedBy() {
|
||||
return this.createdBy;
|
||||
}
|
||||
|
||||
public OffsetDateTime getCreatedOn() {
|
||||
return this.createdOn;
|
||||
}
|
||||
|
||||
public String getModifiedBy() {
|
||||
return this.modifiedBy;
|
||||
}
|
||||
|
||||
public OffsetDateTime getModifiedOn() {
|
||||
return this.modifiedOn;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int compareTo(final FloatingRatePeriodData obj) {
|
||||
if (obj == null) {
|
||||
|
||||
Reference in New Issue
Block a user