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.PathParam;
|
||||||
import jakarta.ws.rs.Produces;
|
import jakarta.ws.rs.Produces;
|
||||||
import jakarta.ws.rs.core.MediaType;
|
import jakarta.ws.rs.core.MediaType;
|
||||||
import java.util.Arrays;
|
|
||||||
import java.util.HashSet;
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Set;
|
|
||||||
import lombok.RequiredArgsConstructor;
|
import lombok.RequiredArgsConstructor;
|
||||||
import org.apache.fineract.commands.domain.CommandWrapper;
|
import org.apache.fineract.commands.domain.CommandWrapper;
|
||||||
import org.apache.fineract.commands.service.CommandWrapperBuilder;
|
import org.apache.fineract.commands.service.CommandWrapperBuilder;
|
||||||
@@ -58,10 +55,6 @@ import org.springframework.stereotype.Component;
|
|||||||
public class FloatingRatesApiResource {
|
public class FloatingRatesApiResource {
|
||||||
|
|
||||||
private static final String RESOURCE_NAME = "FLOATINGRATE";
|
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 PlatformSecurityContext context;
|
||||||
private final PortfolioCommandSourceWritePlatformService commandsSourceWritePlatformService;
|
private final PortfolioCommandSourceWritePlatformService commandsSourceWritePlatformService;
|
||||||
private final DefaultToApiJsonSerializer<FloatingRateData> toApiJsonSerializer;
|
private final DefaultToApiJsonSerializer<FloatingRateData> toApiJsonSerializer;
|
||||||
@@ -72,7 +65,7 @@ public class FloatingRatesApiResource {
|
|||||||
@Produces({ MediaType.APPLICATION_JSON })
|
@Produces({ MediaType.APPLICATION_JSON })
|
||||||
@Operation(summary = "Create a new Floating Rate", description = "Creates a new Floating Rate\n" + "Mandatory Fields: name\n"
|
@Operation(summary = "Create a new Floating Rate", description = "Creates a new Floating Rate\n" + "Mandatory Fields: name\n"
|
||||||
+ "Optional Fields: isBaseLendingRate, isActive, ratePeriods")
|
+ "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({
|
@ApiResponses({
|
||||||
@ApiResponse(responseCode = "200", description = "OK", content = @Content(schema = @Schema(implementation = FloatingRatesApiResourceSwagger.PostFloatingRatesResponse.class))) })
|
@ApiResponse(responseCode = "200", description = "OK", content = @Content(schema = @Schema(implementation = FloatingRatesApiResourceSwagger.PostFloatingRatesResponse.class))) })
|
||||||
public CommandProcessingResult createFloatingRate(@Parameter(hidden = true) final FloatingRateRequest floatingRateRequest) {
|
public CommandProcessingResult createFloatingRate(@Parameter(hidden = true) final FloatingRateRequest floatingRateRequest) {
|
||||||
@@ -97,8 +90,6 @@ public class FloatingRatesApiResource {
|
|||||||
@Consumes({ MediaType.APPLICATION_JSON })
|
@Consumes({ MediaType.APPLICATION_JSON })
|
||||||
@Produces({ MediaType.APPLICATION_JSON })
|
@Produces({ MediaType.APPLICATION_JSON })
|
||||||
@Operation(summary = "Retrieve Floating Rate", description = "Retrieves Floating Rate")
|
@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) {
|
public FloatingRateData retrieveOne(@PathParam("floatingRateId") @Parameter(description = "floatingRateId") final Long floatingRateId) {
|
||||||
this.context.authenticatedUser().validateHasReadPermission(RESOURCE_NAME);
|
this.context.authenticatedUser().validateHasReadPermission(RESOURCE_NAME);
|
||||||
return floatingRatesReadPlatformService.retrieveOne(floatingRateId);
|
return floatingRatesReadPlatformService.retrieveOne(floatingRateId);
|
||||||
@@ -109,7 +100,7 @@ public class FloatingRatesApiResource {
|
|||||||
@Consumes({ MediaType.APPLICATION_JSON })
|
@Consumes({ MediaType.APPLICATION_JSON })
|
||||||
@Produces({ 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.")
|
@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({
|
@ApiResponses({
|
||||||
@ApiResponse(responseCode = "200", description = "OK", content = @Content(schema = @Schema(implementation = FloatingRatesApiResourceSwagger.PutFloatingRatesFloatingRateIdResponse.class))) })
|
@ApiResponse(responseCode = "200", description = "OK", content = @Content(schema = @Schema(implementation = FloatingRatesApiResourceSwagger.PutFloatingRatesFloatingRateIdResponse.class))) })
|
||||||
public CommandProcessingResult updateFloatingRate(
|
public CommandProcessingResult updateFloatingRate(
|
||||||
|
|||||||
-62
@@ -88,68 +88,6 @@ final class FloatingRatesApiResourceSwagger {
|
|||||||
public String modifiedOn;
|
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")
|
@Schema(description = "PutFloatingRatesFloatingRateIdResponse")
|
||||||
public static final class PutFloatingRatesFloatingRateIdResponse {
|
public static final class PutFloatingRatesFloatingRateIdResponse {
|
||||||
|
|
||||||
|
|||||||
+5
-45
@@ -18,34 +18,30 @@
|
|||||||
*/
|
*/
|
||||||
package org.apache.fineract.portfolio.floatingrates.data;
|
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.io.Serializable;
|
||||||
import java.time.OffsetDateTime;
|
import java.time.OffsetDateTime;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import lombok.Getter;
|
||||||
import org.apache.commons.lang3.builder.CompareToBuilder;
|
import org.apache.commons.lang3.builder.CompareToBuilder;
|
||||||
import org.apache.commons.lang3.builder.EqualsBuilder;
|
import org.apache.commons.lang3.builder.EqualsBuilder;
|
||||||
import org.apache.commons.lang3.builder.HashCodeBuilder;
|
import org.apache.commons.lang3.builder.HashCodeBuilder;
|
||||||
import org.apache.fineract.infrastructure.core.data.EnumOptionData;
|
import org.apache.fineract.infrastructure.core.data.EnumOptionData;
|
||||||
|
|
||||||
@JsonInclude(JsonInclude.Include.NON_NULL)
|
@Getter
|
||||||
public class FloatingRateData implements Comparable<FloatingRateData>, Serializable {
|
public class FloatingRateData implements Comparable<FloatingRateData>, Serializable {
|
||||||
|
|
||||||
private final Long id;
|
private final Long id;
|
||||||
private final String name;
|
private final String name;
|
||||||
@JsonProperty("isBaseLendingRate")
|
private final Boolean isBaseLendingRate;
|
||||||
private final boolean isBaseLendingRate;
|
private final Boolean isActive;
|
||||||
@JsonProperty("isActive")
|
|
||||||
private final boolean isActive;
|
|
||||||
private final String createdBy;
|
private final String createdBy;
|
||||||
private final OffsetDateTime createdOn;
|
private final OffsetDateTime createdOn;
|
||||||
private final String modifiedBy;
|
private final String modifiedBy;
|
||||||
private final OffsetDateTime modifiedOn;
|
private final OffsetDateTime modifiedOn;
|
||||||
private final List<FloatingRatePeriodData> ratePeriods;
|
private final List<FloatingRatePeriodData> ratePeriods;
|
||||||
@SuppressWarnings("unused")
|
|
||||||
private final List<EnumOptionData> interestRateFrequencyTypeOptions;
|
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,
|
String modifiedBy, OffsetDateTime modifiedOn, List<FloatingRatePeriodData> ratePeriods,
|
||||||
List<EnumOptionData> interestRateFrequencyTypeOptions) {
|
List<EnumOptionData> interestRateFrequencyTypeOptions) {
|
||||||
this.id = id;
|
this.id = id;
|
||||||
@@ -60,42 +56,6 @@ public class FloatingRateData implements Comparable<FloatingRateData>, Serializa
|
|||||||
this.interestRateFrequencyTypeOptions = interestRateFrequencyTypeOptions;
|
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
|
@Override
|
||||||
public int compareTo(final FloatingRateData obj) {
|
public int compareTo(final FloatingRateData obj) {
|
||||||
if (obj == null) {
|
if (obj == null) {
|
||||||
|
|||||||
+10
-45
@@ -18,33 +18,33 @@
|
|||||||
*/
|
*/
|
||||||
package org.apache.fineract.portfolio.floatingrates.data;
|
package org.apache.fineract.portfolio.floatingrates.data;
|
||||||
|
|
||||||
|
import com.fasterxml.jackson.annotation.JsonIgnore;
|
||||||
import com.fasterxml.jackson.annotation.JsonInclude;
|
import com.fasterxml.jackson.annotation.JsonInclude;
|
||||||
import com.fasterxml.jackson.annotation.JsonProperty;
|
|
||||||
import java.io.Serializable;
|
import java.io.Serializable;
|
||||||
import java.math.BigDecimal;
|
import java.math.BigDecimal;
|
||||||
import java.time.LocalDate;
|
import java.time.LocalDate;
|
||||||
import java.time.OffsetDateTime;
|
import java.time.OffsetDateTime;
|
||||||
|
import lombok.Getter;
|
||||||
import org.apache.commons.lang3.builder.CompareToBuilder;
|
import org.apache.commons.lang3.builder.CompareToBuilder;
|
||||||
import org.apache.commons.lang3.builder.EqualsBuilder;
|
import org.apache.commons.lang3.builder.EqualsBuilder;
|
||||||
import org.apache.commons.lang3.builder.HashCodeBuilder;
|
import org.apache.commons.lang3.builder.HashCodeBuilder;
|
||||||
|
|
||||||
|
@Getter
|
||||||
@JsonInclude(JsonInclude.Include.NON_NULL)
|
@JsonInclude(JsonInclude.Include.NON_NULL)
|
||||||
public class FloatingRatePeriodData implements Comparable<FloatingRatePeriodData>, Serializable {
|
public class FloatingRatePeriodData implements Comparable<FloatingRatePeriodData>, Serializable {
|
||||||
|
|
||||||
private Long id;
|
private Long id;
|
||||||
private LocalDate fromDate;
|
private LocalDate fromDate;
|
||||||
private BigDecimal interestRate;
|
private BigDecimal interestRate;
|
||||||
@JsonProperty("isDifferentialToBaseLendingRate")
|
private Boolean isDifferentialToBaseLendingRate;
|
||||||
private boolean isDifferentialToBaseLendingRate;
|
private Boolean isActive;
|
||||||
@JsonProperty("isActive")
|
|
||||||
private boolean isActive;
|
|
||||||
private String createdBy;
|
private String createdBy;
|
||||||
private OffsetDateTime createdOn;
|
private OffsetDateTime createdOn;
|
||||||
private String modifiedBy;
|
private String modifiedBy;
|
||||||
private OffsetDateTime modifiedOn;
|
private OffsetDateTime modifiedOn;
|
||||||
|
|
||||||
public FloatingRatePeriodData(Long id, LocalDate fromDate, BigDecimal interestRate, boolean isDifferentialToBaseLendingRate,
|
public FloatingRatePeriodData(Long id, LocalDate fromDate, BigDecimal interestRate, Boolean isDifferentialToBaseLendingRate,
|
||||||
boolean isActive, String createdBy, OffsetDateTime createdOn, String modifiedBy, OffsetDateTime modifiedOn) {
|
Boolean isActive, String createdBy, OffsetDateTime createdOn, String modifiedBy, OffsetDateTime modifiedOn) {
|
||||||
this.id = id;
|
this.id = id;
|
||||||
this.fromDate = fromDate;
|
this.fromDate = fromDate;
|
||||||
this.interestRate = interestRate;
|
this.interestRate = interestRate;
|
||||||
@@ -56,8 +56,8 @@ public class FloatingRatePeriodData implements Comparable<FloatingRatePeriodData
|
|||||||
this.modifiedOn = modifiedOn;
|
this.modifiedOn = modifiedOn;
|
||||||
}
|
}
|
||||||
|
|
||||||
public FloatingRatePeriodData(Long id, LocalDate fromDate, BigDecimal interestRate, boolean isDifferentialToBaseLendingRate,
|
public FloatingRatePeriodData(Long id, LocalDate fromDate, BigDecimal interestRate, Boolean isDifferentialToBaseLendingRate,
|
||||||
boolean isActive) {
|
Boolean isActive) {
|
||||||
this.id = id;
|
this.id = id;
|
||||||
this.fromDate = fromDate;
|
this.fromDate = fromDate;
|
||||||
this.interestRate = interestRate;
|
this.interestRate = interestRate;
|
||||||
@@ -65,46 +65,11 @@ public class FloatingRatePeriodData implements Comparable<FloatingRatePeriodData
|
|||||||
this.isActive = isActive;
|
this.isActive = isActive;
|
||||||
}
|
}
|
||||||
|
|
||||||
public Long getId() {
|
@JsonIgnore
|
||||||
return this.id;
|
|
||||||
}
|
|
||||||
|
|
||||||
public LocalDate getFromDate() {
|
|
||||||
return this.fromDate;
|
|
||||||
}
|
|
||||||
|
|
||||||
public LocalDate getFromDateAsLocalDate() {
|
public LocalDate getFromDateAsLocalDate() {
|
||||||
return this.fromDate;
|
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
|
@Override
|
||||||
public int compareTo(final FloatingRatePeriodData obj) {
|
public int compareTo(final FloatingRatePeriodData obj) {
|
||||||
if (obj == null) {
|
if (obj == null) {
|
||||||
|
|||||||
Reference in New Issue
Block a user