elnafateh commented on code in PR #6008:
URL: https://github.com/apache/fineract/pull/6008#discussion_r3451962766
##########
integration-tests/src/test/java/org/apache/fineract/integrationtests/common/organisation/EntityDatatableChecksHelper.java:
##########
@@ -18,90 +18,53 @@
*/
package org.apache.fineract.integrationtests.common.organisation;
-import com.google.gson.Gson;
-import io.restassured.specification.RequestSpecification;
-import io.restassured.specification.ResponseSpecification;
-import java.util.HashMap;
-import
org.apache.fineract.client.models.PostEntityDatatableChecksTemplateResponse;
-import org.apache.fineract.client.util.JSON;
-import org.apache.fineract.integrationtests.common.Utils;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-public class EntityDatatableChecksHelper {
+import static org.apache.fineract.client.feign.util.FeignCalls.ok;
- private static final Logger LOG =
LoggerFactory.getLogger(EntityDatatableChecksHelper.class);
- private final RequestSpecification requestSpec;
- private final ResponseSpecification responseSpec;
+import com.fasterxml.jackson.databind.ObjectMapper;
+import feign.Headers;
+import feign.QueryMap;
+import feign.RequestLine;
+import java.util.List;
+import java.util.Map;
+import org.apache.fineract.client.feign.ObjectMapperFactory;
+import
org.apache.fineract.client.models.DeleteEntityDatatableChecksTemplateResponse;
+import org.apache.fineract.client.models.GetEntityDatatableChecksResponse;
+import
org.apache.fineract.client.models.PostEntityDatatableChecksTemplateRequest;
+import
org.apache.fineract.client.models.PostEntityDatatableChecksTemplateResponse;
+import org.apache.fineract.integrationtests.common.FineractFeignClientHelper;
- private static final String DATATABLE_CHECK_URL =
"/fineract-provider/api/v1/entityDatatableChecks";
+public final class EntityDatatableChecksHelper {
- private static final Gson GSON = new JSON().getGson();
+ private static final ObjectMapper MAPPER = ObjectMapperFactory.getShared();
- // TODO: Rewrite to use fineract-client instead!
- // Example:
org.apache.fineract.integrationtests.common.loans.LoanTransactionHelper.disburseLoan(java.lang.Long,
- // org.apache.fineract.client.models.PostLoansLoanIdRequest)
- @Deprecated(forRemoval = true)
- public EntityDatatableChecksHelper(final RequestSpecification requestSpec,
final ResponseSpecification responseSpec) {
- this.requestSpec = requestSpec;
- this.responseSpec = responseSpec;
- }
+ private EntityDatatableChecksHelper() {}
- // TODO: Rewrite to use fineract-client instead!
- // Example:
org.apache.fineract.integrationtests.common.loans.LoanTransactionHelper.disburseLoan(java.lang.Long,
- // org.apache.fineract.client.models.PostLoansLoanIdRequest)
- @Deprecated(forRemoval = true)
- public Integer createEntityDatatableCheck(final String apptableName, final
String datatableName, final int status,
- final Integer productId) {
- return Utils.performServerPost(this.requestSpec, this.responseSpec,
DATATABLE_CHECK_URL + "?" + Utils.TENANT_IDENTIFIER,
- getTestEdcAsJSON(apptableName, datatableName, status,
productId), "resourceId");
+ public static PostEntityDatatableChecksTemplateResponse
createEntityDatatableCheck(final String apptableName,
+ final String datatableName, final Long status, final Long
productId) {
+ PostEntityDatatableChecksTemplateRequest request = new
PostEntityDatatableChecksTemplateRequest().entity(apptableName)
+
.datatableName(datatableName).status(status).productId(productId);
+ return ok(() ->
FineractFeignClientHelper.getFineractFeignClient().entityDataTable().createEntityDatatableCheck(request));
}
- // TODO: Rewrite to use fineract-client instead!
- // Example:
org.apache.fineract.integrationtests.common.loans.LoanTransactionHelper.disburseLoan(java.lang.Long,
- // org.apache.fineract.client.models.PostLoansLoanIdRequest)
- @Deprecated(forRemoval = true)
- public PostEntityDatatableChecksTemplateResponse
addEntityDatatableCheck(final String apptableName, final String datatableName,
- final int status, final Integer productId) {
- final String response = Utils.performServerPost(this.requestSpec,
this.responseSpec,
- DATATABLE_CHECK_URL + "?" + Utils.TENANT_IDENTIFIER,
getTestEdcAsJSON(apptableName, datatableName, status, productId),
- null);
- return GSON.fromJson(response,
PostEntityDatatableChecksTemplateResponse.class);
+ public static DeleteEntityDatatableChecksTemplateResponse
deleteEntityDatatableCheck(final Long entityDatatableCheckId) {
+ return ok(() ->
FineractFeignClientHelper.getFineractFeignClient().entityDataTable().deleteDatatable1(entityDatatableCheckId));
}
- // TODO: Rewrite to use fineract-client instead!
- // Example:
org.apache.fineract.integrationtests.common.loans.LoanTransactionHelper.disburseLoan(java.lang.Long,
- // org.apache.fineract.client.models.PostLoansLoanIdRequest)
- @Deprecated(forRemoval = true)
- public Integer deleteEntityDatatableCheck(final Integer
entityDatatableCheckId) {
- return Utils.performServerDelete(requestSpec, responseSpec,
- DATATABLE_CHECK_URL + "/" + entityDatatableCheckId + "?" +
Utils.TENANT_IDENTIFIER, "resourceId");
+ // The generated EntityDataTableApi#retrieveAll4 incorrectly declares its
return type as
+ // List<GetEntityDatatableChecksResponse>, but the server actually wraps
results in a Page object:
+ // {"totalFilteredRecords": N, "pageItems": [...]}. Use a raw
Map-returning interface to work around this.
+ public static List<GetEntityDatatableChecksResponse>
retrieveEntityDatatableCheck() {
+ Map<String, Object> response = ok(() ->
FineractFeignClientHelper.getFineractFeignClient().create(RawEntityDataTableApi.class)
+ .retrieveAll(Map.of("limit", -1)));
+ Object pageItems = response.get("pageItems");
+ return MAPPER.convertValue(pageItems,
+ MAPPER.getTypeFactory().constructCollectionType(List.class,
GetEntityDatatableChecksResponse.class));
}
- // TODO: Rewrite to use fineract-client instead!
- // Example:
org.apache.fineract.integrationtests.common.loans.LoanTransactionHelper.disburseLoan(java.lang.Long,
- // org.apache.fineract.client.models.PostLoansLoanIdRequest)
- @Deprecated(forRemoval = true)
- public String retrieveEntityDatatableCheck() {
- return Utils.performServerGet(requestSpec, responseSpec,
DATATABLE_CHECK_URL + "?" + Utils.TENANT_IDENTIFIER, null);
- }
+ private interface RawEntityDataTableApi {
- // TODO: Rewrite to use fineract-client instead!
- // Example:
org.apache.fineract.integrationtests.common.loans.LoanTransactionHelper.disburseLoan(java.lang.Long,
- // org.apache.fineract.client.models.PostLoansLoanIdRequest)
- @Deprecated(forRemoval = true)
- public static String getTestEdcAsJSON(final String apptableName, final
String datatableName, final int status,
- final Integer productId) {
- final HashMap<String, Object> map = new HashMap<>();
- map.put("entity", apptableName);
- map.put("status", status);
- map.put("datatableName", datatableName);
- if (productId != null) {
- map.put("productId", productId);
- }
- String requestJsonString = new Gson().toJson(map);
- LOG.info("map : {}", requestJsonString);
- return requestJsonString;
+ @RequestLine("GET /v1/entityDatatableChecks")
+ @Headers("Accept: application/json")
+ Map<String, Object> retrieveAll(@QueryMap Map<String, Object>
queryParams);
Review Comment:
Yes, I have Fixed the annotation, regenerated the client, and now using the
properly typed
--
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]