You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@fineract.apache.org by ar...@apache.org on 2022/09/16 15:26:26 UTC

[fineract] branch develop updated: Manage scheduler and cob jobs

This is an automated email from the ASF dual-hosted git repository.

arnold pushed a commit to branch develop
in repository https://gitbox.apache.org/repos/asf/fineract.git


The following commit(s) were added to refs/heads/develop by this push:
     new 744d38c58 Manage scheduler and cob jobs
744d38c58 is described below

commit 744d38c588b2c2b88f88631c2427ab7ede117e1b
Author: Jose Alberto Hernandez <al...@MacBook-Pro.local>
AuthorDate: Wed Sep 7 23:03:07 2022 -0500

    Manage scheduler and cob jobs
---
 .../fineract/cob/api/ConfigureBusinessStepResource.java  | 16 ++++++++++++++++
 .../cob/api/ConfigureBusinessStepResourceSwagger.java    |  9 +++++++++
 .../fineract/cob/domain/BatchBusinessStepRepository.java |  5 +++++
 .../fineract/cob/service/ConfigJobParameterService.java  |  4 ++++
 .../cob/service/ConfigJobParameterServiceImpl.java       |  6 ++++++
 5 files changed, 40 insertions(+)

diff --git a/fineract-provider/src/main/java/org/apache/fineract/cob/api/ConfigureBusinessStepResource.java b/fineract-provider/src/main/java/org/apache/fineract/cob/api/ConfigureBusinessStepResource.java
index 9febbfd9c..9fa37171b 100644
--- a/fineract-provider/src/main/java/org/apache/fineract/cob/api/ConfigureBusinessStepResource.java
+++ b/fineract-provider/src/main/java/org/apache/fineract/cob/api/ConfigureBusinessStepResource.java
@@ -18,6 +18,7 @@
  */
 package org.apache.fineract.cob.api;
 
+import com.google.gson.Gson;
 import io.swagger.v3.oas.annotations.Operation;
 import io.swagger.v3.oas.annotations.Parameter;
 import io.swagger.v3.oas.annotations.media.ArraySchema;
@@ -29,6 +30,7 @@ import io.swagger.v3.oas.annotations.responses.ApiResponses;
 import io.swagger.v3.oas.annotations.tags.Tag;
 import java.util.Arrays;
 import java.util.HashSet;
+import java.util.List;
 import java.util.Set;
 import javax.ws.rs.Consumes;
 import javax.ws.rs.GET;
@@ -69,6 +71,20 @@ public class ConfigureBusinessStepResource {
     private final ConfigJobParameterService configJobParameterService;
     private final PortfolioCommandSourceWritePlatformService commandWritePlatformService;
 
+    @GET
+    @Path("/names")
+    @Produces({ MediaType.APPLICATION_JSON })
+    @Operation(summary = "List Business Jobs", description = "Returns the configured Business Jobs")
+    @ApiResponses({
+            @ApiResponse(responseCode = "200", description = "OK", content = @Content(array = @ArraySchema(schema = @Schema(implementation = ConfigureBusinessStepResourceSwagger.GetBusinessJobConfigResponse.class)))) })
+    public String retrieveAllConfiguredBusinessJobs(@Context final UriInfo uriInfo) {
+
+        List<String> businessJobNames = configJobParameterService.getAllConfiguredJobNames();
+        final Gson gson = new Gson();
+
+        return gson.toJson(businessJobNames);
+    }
+
     @GET
     @Path("{jobName}/steps")
     @Consumes({ MediaType.APPLICATION_JSON })
diff --git a/fineract-provider/src/main/java/org/apache/fineract/cob/api/ConfigureBusinessStepResourceSwagger.java b/fineract-provider/src/main/java/org/apache/fineract/cob/api/ConfigureBusinessStepResourceSwagger.java
index e01a0884e..a8eaa97a6 100644
--- a/fineract-provider/src/main/java/org/apache/fineract/cob/api/ConfigureBusinessStepResourceSwagger.java
+++ b/fineract-provider/src/main/java/org/apache/fineract/cob/api/ConfigureBusinessStepResourceSwagger.java
@@ -27,6 +27,15 @@ final class ConfigureBusinessStepResourceSwagger {
 
     }
 
+    @Schema(description = "GetBusinessJobConfigResponse")
+    public static final class GetBusinessJobConfigResponse {
+
+        private GetBusinessJobConfigResponse() {}
+
+        public List<String> businessJobs;
+
+    }
+
     @Schema(description = "GetBusinessStepConfigResponse")
     public static final class GetBusinessStepConfigResponse {
 
diff --git a/fineract-provider/src/main/java/org/apache/fineract/cob/domain/BatchBusinessStepRepository.java b/fineract-provider/src/main/java/org/apache/fineract/cob/domain/BatchBusinessStepRepository.java
index 76475e2a3..d68deb463 100644
--- a/fineract-provider/src/main/java/org/apache/fineract/cob/domain/BatchBusinessStepRepository.java
+++ b/fineract-provider/src/main/java/org/apache/fineract/cob/domain/BatchBusinessStepRepository.java
@@ -21,8 +21,13 @@ package org.apache.fineract.cob.domain;
 import java.util.List;
 import org.springframework.data.jpa.repository.JpaRepository;
 import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
+import org.springframework.data.jpa.repository.Query;
 
 public interface BatchBusinessStepRepository extends JpaRepository<BatchBusinessStep, Long>, JpaSpecificationExecutor<BatchBusinessStep> {
 
     List<BatchBusinessStep> findAllByJobName(String jobName);
+
+    @Query("SELECT DISTINCT bbs.jobName FROM BatchBusinessStep bbs")
+    List<String> findConfiguredJobNames();
+
 }
diff --git a/fineract-provider/src/main/java/org/apache/fineract/cob/service/ConfigJobParameterService.java b/fineract-provider/src/main/java/org/apache/fineract/cob/service/ConfigJobParameterService.java
index 25e082a34..b40c16e1f 100644
--- a/fineract-provider/src/main/java/org/apache/fineract/cob/service/ConfigJobParameterService.java
+++ b/fineract-provider/src/main/java/org/apache/fineract/cob/service/ConfigJobParameterService.java
@@ -18,6 +18,7 @@
  */
 package org.apache.fineract.cob.service;
 
+import java.util.List;
 import org.apache.fineract.cob.data.JobBusinessStepConfigData;
 import org.apache.fineract.cob.data.JobBusinessStepDetail;
 import org.apache.fineract.infrastructure.core.api.JsonCommand;
@@ -30,4 +31,7 @@ public interface ConfigJobParameterService {
     CommandProcessingResult updateStepConfigByJobName(JsonCommand command, String jobName);
 
     JobBusinessStepDetail getAvailableBusinessStepsByJobName(String jobName);
+
+    List<String> getAllConfiguredJobNames();
+
 }
diff --git a/fineract-provider/src/main/java/org/apache/fineract/cob/service/ConfigJobParameterServiceImpl.java b/fineract-provider/src/main/java/org/apache/fineract/cob/service/ConfigJobParameterServiceImpl.java
index 71c87911b..71405a472 100644
--- a/fineract-provider/src/main/java/org/apache/fineract/cob/service/ConfigJobParameterServiceImpl.java
+++ b/fineract-provider/src/main/java/org/apache/fineract/cob/service/ConfigJobParameterServiceImpl.java
@@ -91,4 +91,10 @@ public class ConfigJobParameterServiceImpl implements ConfigJobParameterService
         jobBusinessStepDetail.setAvailableBusinessSteps(availableBusinessSteps);
         return jobBusinessStepDetail;
     }
+
+    @Override
+    public List<String> getAllConfiguredJobNames() {
+        return batchBusinessStepRepository.findConfiguredJobNames();
+    }
+
 }