FINERACT-2169: Apply dto in SearchApiResource
This commit is contained in:
committed by
Adam Saghy
parent
f73b352727
commit
79c08ed7c9
+2
-44
@@ -18,8 +18,10 @@
|
||||
*/
|
||||
package org.apache.fineract.portfolio.search.data;
|
||||
|
||||
import lombok.Getter;
|
||||
import org.apache.fineract.infrastructure.core.data.EnumOptionData;
|
||||
|
||||
@Getter
|
||||
public class SearchData {
|
||||
|
||||
private final Long entityId;
|
||||
@@ -51,48 +53,4 @@ public class SearchData {
|
||||
this.subEntityType = subEntityType;
|
||||
}
|
||||
|
||||
public Long getEntityId() {
|
||||
return this.entityId;
|
||||
}
|
||||
|
||||
public String getEntityAccountNo() {
|
||||
return this.entityAccountNo;
|
||||
}
|
||||
|
||||
public String getEntityExternalId() {
|
||||
return this.entityExternalId;
|
||||
}
|
||||
|
||||
public String getEntityName() {
|
||||
return this.entityName;
|
||||
}
|
||||
|
||||
public String getEntityType() {
|
||||
return this.entityType;
|
||||
}
|
||||
|
||||
public Long getParentId() {
|
||||
return this.parentId;
|
||||
}
|
||||
|
||||
public String getParentName() {
|
||||
return this.parentName;
|
||||
}
|
||||
|
||||
public String getParentType() {
|
||||
return this.parentType;
|
||||
}
|
||||
|
||||
public String getEntityMobileNo() {
|
||||
return this.entityMobileNo;
|
||||
}
|
||||
|
||||
public EnumOptionData getEntityStatus() {
|
||||
return this.entityStatus;
|
||||
}
|
||||
|
||||
public String getSubEntityType() {
|
||||
return this.subEntityType;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
+7
-28
@@ -34,15 +34,10 @@ import jakarta.ws.rs.POST;
|
||||
import jakarta.ws.rs.Path;
|
||||
import jakarta.ws.rs.Produces;
|
||||
import jakarta.ws.rs.QueryParam;
|
||||
import jakarta.ws.rs.core.Context;
|
||||
import jakarta.ws.rs.core.MediaType;
|
||||
import jakarta.ws.rs.core.UriInfo;
|
||||
import java.util.Collection;
|
||||
import java.util.List;
|
||||
import java.util.Set;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.apache.fineract.infrastructure.core.api.ApiRequestParameterHelper;
|
||||
import org.apache.fineract.infrastructure.core.serialization.ApiRequestJsonSerializationSettings;
|
||||
import org.apache.fineract.infrastructure.core.serialization.ToApiJsonSerializer;
|
||||
import org.apache.fineract.portfolio.search.SearchConstants.SearchResponseParameters;
|
||||
import org.apache.fineract.portfolio.search.data.AdHocQueryDataValidator;
|
||||
import org.apache.fineract.portfolio.search.data.AdHocQuerySearchConditions;
|
||||
@@ -61,8 +56,6 @@ public class SearchApiResource {
|
||||
private static final Set<String> SEARCH_RESPONSE_PARAMETERS = SearchResponseParameters.getAllValues();
|
||||
|
||||
private final SearchReadPlatformService searchReadPlatformService;
|
||||
private final ToApiJsonSerializer<Object> toApiJsonSerializer;
|
||||
private final ApiRequestParameterHelper apiRequestParameterHelper;
|
||||
private final AdHocQueryDataValidator fromApiJsonDeserializer;
|
||||
|
||||
@GET
|
||||
@@ -70,14 +63,9 @@ public class SearchApiResource {
|
||||
@Consumes({ MediaType.APPLICATION_JSON })
|
||||
@Produces({ MediaType.APPLICATION_JSON })
|
||||
@Operation(summary = "Retrive Adhoc Search query template", description = "Mandatory Fields\n" + "\n" + "search?query=000000001\n")
|
||||
@ApiResponses({
|
||||
@ApiResponse(responseCode = "200", description = "OK", content = @Content(schema = @Schema(implementation = SearchApiResourceSwagger.GetSearchResponse.class))) })
|
||||
public String retrieveAdHocSearchQueryTemplate(@Context final UriInfo uriInfo) {
|
||||
public AdHocSearchQueryData retrieveAdHocSearchQueryTemplate() {
|
||||
|
||||
final AdHocSearchQueryData templateData = this.searchReadPlatformService.retrieveAdHocQueryTemplate();
|
||||
|
||||
final ApiRequestJsonSerializationSettings settings = this.apiRequestParameterHelper.process(uriInfo.getQueryParameters());
|
||||
return this.toApiJsonSerializer.serialize(settings, templateData);
|
||||
return this.searchReadPlatformService.retrieveAdHocQueryTemplate();
|
||||
}
|
||||
|
||||
@GET
|
||||
@@ -87,16 +75,13 @@ public class SearchApiResource {
|
||||
+ "search?query=Petra&resource=clients,groups\n" + "\n" + "\n" + "search?query=Petra&resource=clients,groups&exactMatch=true")
|
||||
@ApiResponses({
|
||||
@ApiResponse(responseCode = "200", description = "OK", content = @Content(array = @ArraySchema(schema = @Schema(implementation = SearchApiResourceSwagger.GetSearchResponse.class)))) })
|
||||
public String searchData(@Context final UriInfo uriInfo, @QueryParam("query") @Parameter(description = "query") final String query,
|
||||
public List<SearchData> searchData(@QueryParam("query") @Parameter(description = "query") final String query,
|
||||
@QueryParam("resource") @Parameter(description = "resource") final String resource,
|
||||
@DefaultValue("false") @QueryParam("exactMatch") @Parameter(description = "exactMatch") Boolean exactMatch) {
|
||||
|
||||
final SearchConditions searchConditions = new SearchConditions(query, resource, exactMatch);
|
||||
|
||||
final Collection<SearchData> searchResults = this.searchReadPlatformService.retriveMatchingData(searchConditions);
|
||||
|
||||
final ApiRequestJsonSerializationSettings settings = this.apiRequestParameterHelper.process(uriInfo.getQueryParameters());
|
||||
return this.toApiJsonSerializer.serialize(settings, searchResults, SEARCH_RESPONSE_PARAMETERS);
|
||||
return this.searchReadPlatformService.retriveMatchingData(searchConditions);
|
||||
}
|
||||
|
||||
@POST
|
||||
@@ -111,16 +96,10 @@ public class SearchApiResource {
|
||||
+ "includeOutstandingAmount, outstandingAmountCondition, \n"
|
||||
+ "minOutstandingAmount and maxOutstandingAmount OR outstandingAmount")
|
||||
@RequestBody(required = true, content = @Content(schema = @Schema(implementation = SearchApiResourceSwagger.PostAdhocQuerySearchRequest.class)))
|
||||
@ApiResponses({
|
||||
@ApiResponse(responseCode = "200", description = "OK", content = @Content(array = @ArraySchema(schema = @Schema(implementation = SearchApiResourceSwagger.PostAdhocQuerySearchResponse.class)))) })
|
||||
public String advancedSearch(@Context final UriInfo uriInfo, final String json) {
|
||||
public List<AdHocSearchQueryData> advancedSearch(final String json) {
|
||||
|
||||
final AdHocQuerySearchConditions searchConditions = this.fromApiJsonDeserializer.retrieveSearchConditions(json);
|
||||
|
||||
final Collection<AdHocSearchQueryData> searchResults = this.searchReadPlatformService
|
||||
.retrieveAdHocQueryMatchingData(searchConditions);
|
||||
|
||||
final ApiRequestJsonSerializationSettings settings = this.apiRequestParameterHelper.process(uriInfo.getQueryParameters());
|
||||
return this.toApiJsonSerializer.serialize(settings, searchResults);
|
||||
return this.searchReadPlatformService.retrieveAdHocQueryMatchingData(searchConditions);
|
||||
}
|
||||
}
|
||||
|
||||
-16
@@ -88,20 +88,4 @@ final class SearchApiResourceSwagger {
|
||||
public Long maxOutstandingAmount;
|
||||
}
|
||||
|
||||
@Schema(description = "PostAdhocQuerySearchResponse")
|
||||
public static final class PostAdhocQuerySearchResponse {
|
||||
|
||||
private PostAdhocQuerySearchResponse() {
|
||||
|
||||
}
|
||||
|
||||
@Schema(example = "HFC")
|
||||
public String officeName;
|
||||
@Schema(example = "01 BC3M")
|
||||
public String loanProductName;
|
||||
@Schema(example = " 5692.41")
|
||||
public Long loanOutStanding;
|
||||
@Schema(example = "76.4")
|
||||
public Long percentage;
|
||||
}
|
||||
}
|
||||
|
||||
+2
@@ -20,9 +20,11 @@ package org.apache.fineract.portfolio.search.data;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.util.Collection;
|
||||
import lombok.Getter;
|
||||
import org.apache.fineract.organisation.office.data.OfficeData;
|
||||
import org.apache.fineract.portfolio.loanproduct.data.LoanProductData;
|
||||
|
||||
@Getter
|
||||
public final class AdHocSearchQueryData {
|
||||
|
||||
@SuppressWarnings("unused")
|
||||
|
||||
+3
-3
@@ -18,7 +18,7 @@
|
||||
*/
|
||||
package org.apache.fineract.portfolio.search.service;
|
||||
|
||||
import java.util.Collection;
|
||||
import java.util.List;
|
||||
import org.apache.fineract.portfolio.search.data.AdHocQuerySearchConditions;
|
||||
import org.apache.fineract.portfolio.search.data.AdHocSearchQueryData;
|
||||
import org.apache.fineract.portfolio.search.data.SearchConditions;
|
||||
@@ -26,9 +26,9 @@ import org.apache.fineract.portfolio.search.data.SearchData;
|
||||
|
||||
public interface SearchReadPlatformService {
|
||||
|
||||
Collection<SearchData> retriveMatchingData(SearchConditions searchConditions);
|
||||
List<SearchData> retriveMatchingData(SearchConditions searchConditions);
|
||||
|
||||
AdHocSearchQueryData retrieveAdHocQueryTemplate();
|
||||
|
||||
Collection<AdHocSearchQueryData> retrieveAdHocQueryMatchingData(AdHocQuerySearchConditions searchConditions);
|
||||
List<AdHocSearchQueryData> retrieveAdHocQueryMatchingData(AdHocQuerySearchConditions searchConditions);
|
||||
}
|
||||
|
||||
+3
-2
@@ -22,6 +22,7 @@ import java.math.BigDecimal;
|
||||
import java.sql.ResultSet;
|
||||
import java.sql.SQLException;
|
||||
import java.util.Collection;
|
||||
import java.util.List;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.apache.fineract.infrastructure.core.data.EnumOptionData;
|
||||
@@ -58,7 +59,7 @@ public class SearchReadPlatformServiceImpl implements SearchReadPlatformService
|
||||
private final DatabaseSpecificSQLGenerator sqlGenerator;
|
||||
|
||||
@Override
|
||||
public Collection<SearchData> retriveMatchingData(final SearchConditions searchConditions) {
|
||||
public List<SearchData> retriveMatchingData(final SearchConditions searchConditions) {
|
||||
final AppUser currentUser = context.authenticatedUser();
|
||||
final String hierarchy = currentUser.getOffice().getHierarchy();
|
||||
|
||||
@@ -194,7 +195,7 @@ public class SearchReadPlatformServiceImpl implements SearchReadPlatformService
|
||||
}
|
||||
|
||||
@Override
|
||||
public Collection<AdHocSearchQueryData> retrieveAdHocQueryMatchingData(final AdHocQuerySearchConditions searchConditions) {
|
||||
public List<AdHocSearchQueryData> retrieveAdHocQueryMatchingData(final AdHocQuerySearchConditions searchConditions) {
|
||||
|
||||
context.authenticatedUser();
|
||||
|
||||
|
||||
Reference in New Issue
Block a user