You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@fineract.apache.org by aw...@apache.org on 2019/04/30 08:24:58 UTC

[fineract-cn-group] 24/40: modified requestparams in GrouprestController and some modifications in GroupDefinitionRestController

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

awasum pushed a commit to branch develop
in repository https://gitbox.apache.org/repos/asf/fineract-cn-group.git

commit 62c4bd0584773e11f9a703063d9fa2faa927b46d
Author: kengneruphine <ru...@gmail.com>
AuthorDate: Tue Jun 19 16:46:14 2018 +0100

    modified requestparams in GrouprestController and some modifications in GroupDefinitionRestController
---
 .gitignore                                             |  2 ++
 .../fineract/cn/group/api/v1/client/GroupManager.java  | 10 +++++-----
 .../internal/repository/GroupDefinitionRepository.java |  5 ++++-
 .../group/internal/service/GroupDefinitionService.java |  4 ++++
 .../cn/group/rest/GroupDefinitionRestController.java   | 18 ++++++++++++------
 .../fineract/cn/group/rest/GroupRestController.java    | 10 +++++-----
 6 files changed, 32 insertions(+), 17 deletions(-)

diff --git a/.gitignore b/.gitignore
index 95274b9..5f934cb 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,5 +1,7 @@
 .gradle
 .idea
+.project
+.settings
 **/build/
 **/target/
 
diff --git a/api/src/main/java/org/apache/fineract/cn/group/api/v1/client/GroupManager.java b/api/src/main/java/org/apache/fineract/cn/group/api/v1/client/GroupManager.java
index b64b390..e146987 100644
--- a/api/src/main/java/org/apache/fineract/cn/group/api/v1/client/GroupManager.java
+++ b/api/src/main/java/org/apache/fineract/cn/group/api/v1/client/GroupManager.java
@@ -93,11 +93,11 @@ public interface GroupManager {
       produces = MediaType.ALL_VALUE,
       consumes = MediaType.APPLICATION_JSON_VALUE
   )
-  GroupPage fetchGroups(@RequestParam("employee") final String employee,
-                        @RequestParam("page") final Integer page,
-                        @RequestParam("size") final Integer size,
-                        @RequestParam("sortColumn") final String sortColumn,
-                        @RequestParam("sortDirection") final String sortDirection);
+  GroupPage fetchGroups(@RequestParam(value="employee", required=false) final String employee,
+                        @RequestParam(value="page", required=false) final Integer page,
+                        @RequestParam(value="size",required=false) final Integer size,
+                        @RequestParam(value="sortColumn", required=false) final String sortColumn,
+                        @RequestParam(value="sortDirection",required=false) final String sortDirection);
 
   @RequestMapping(
       value = "/groups/{identifier}",
diff --git a/service/src/main/java/org/apache/fineract/cn/group/internal/repository/GroupDefinitionRepository.java b/service/src/main/java/org/apache/fineract/cn/group/internal/repository/GroupDefinitionRepository.java
index 5bb130b..b70d029 100644
--- a/service/src/main/java/org/apache/fineract/cn/group/internal/repository/GroupDefinitionRepository.java
+++ b/service/src/main/java/org/apache/fineract/cn/group/internal/repository/GroupDefinitionRepository.java
@@ -19,12 +19,15 @@
 package org.apache.fineract.cn.group.internal.repository;
 
 import org.springframework.data.jpa.repository.JpaRepository;
+import org.springframework.data.jpa.repository.Query;
+import org.springframework.data.repository.query.Param;
 import org.springframework.stereotype.Repository;
 
 import java.util.Optional;
 
 @Repository
 public interface GroupDefinitionRepository extends JpaRepository<GroupDefinitionEntity, Long> {
-
+  @Query("SELECT CASE WHEN COUNT(c) > 0 THEN 'true' ELSE 'false' END FROM GroupDefinitionEntity c WHERE c.identifier = :identifier")
+  Boolean existsByIdentifier(@Param("identifier") final String identifier);
   Optional<GroupDefinitionEntity> findByIdentifier(final String identifier);
 }
diff --git a/service/src/main/java/org/apache/fineract/cn/group/internal/service/GroupDefinitionService.java b/service/src/main/java/org/apache/fineract/cn/group/internal/service/GroupDefinitionService.java
index 6d34e81..19f1c9d 100644
--- a/service/src/main/java/org/apache/fineract/cn/group/internal/service/GroupDefinitionService.java
+++ b/service/src/main/java/org/apache/fineract/cn/group/internal/service/GroupDefinitionService.java
@@ -45,6 +45,10 @@ public class GroupDefinitionService {
     this.groupDefinitionRepository = groupDefinitionRepository;
   }
 
+  public Boolean groupDefinitionExists(final String identifier) {
+    return this.groupDefinitionRepository.existsByIdentifier(identifier);
+  }
+
   public Optional<GroupDefinition> findByIdentifier(final String identifier) {
     return this.groupDefinitionRepository.findByIdentifier(identifier).map(GroupDefinitionMapper::map);
   }
diff --git a/service/src/main/java/org/apache/fineract/cn/group/rest/GroupDefinitionRestController.java b/service/src/main/java/org/apache/fineract/cn/group/rest/GroupDefinitionRestController.java
index 1250560..8874e76 100644
--- a/service/src/main/java/org/apache/fineract/cn/group/rest/GroupDefinitionRestController.java
+++ b/service/src/main/java/org/apache/fineract/cn/group/rest/GroupDefinitionRestController.java
@@ -68,13 +68,19 @@ public class GroupDefinitionRestController {
   public
   @ResponseBody
   ResponseEntity<Void> createDefinition(@RequestBody @Valid final GroupDefinition groupDefinition) {
-    this.groupDefinitionService.findByIdentifier(groupDefinition.getIdentifier())
-        .ifPresent(gd -> {
-          throw ServiceException.conflict("Group definition {0} already exists.", gd.getIdentifier());
-        });
-
-    this.commandGateway.process(new CreateGroupDefinitionCommand(groupDefinition));
+    if (this.groupDefinitionService.groupDefinitionExists(groupDefinition.getIdentifier())) {
+      throw ServiceException.conflict("Group definition {0} already exists.", groupDefinition.getIdentifier());
+    }
+      this.commandGateway.process(new CreateGroupDefinitionCommand(groupDefinition));
     return ResponseEntity.accepted().build();
+
+//    this.groupDefinitionService.findByIdentifier(groupDefinition.getIdentifier())
+//        .ifPresent(gd -> {
+//          throw ServiceException.conflict("Group definition {0} already exists.", gd.getIdentifier());
+//        });
+//
+//    this.commandGateway.process(new CreateGroupDefinitionCommand(groupDefinition));
+//    return ResponseEntity.accepted().build();
   }
 
   @Permittable(value= AcceptedTokenType.TENANT, groupId = PermittableGroupIds.DEFINITION)
diff --git a/service/src/main/java/org/apache/fineract/cn/group/rest/GroupRestController.java b/service/src/main/java/org/apache/fineract/cn/group/rest/GroupRestController.java
index ee0e55e..0db02d0 100644
--- a/service/src/main/java/org/apache/fineract/cn/group/rest/GroupRestController.java
+++ b/service/src/main/java/org/apache/fineract/cn/group/rest/GroupRestController.java
@@ -112,11 +112,11 @@ public class GroupRestController {
   public
   @ResponseBody
   ResponseEntity<GroupPage> fetchGroups(
-      @RequestParam("employee") final String employee,
-      @RequestParam("page") final Integer page,
-      @RequestParam("size") final Integer size,
-      @RequestParam("sortColumn") final String sortColumn,
-      @RequestParam("sortDirection") final String sortDirection) {
+      @RequestParam(value="employee",required=false) final String employee,
+      @RequestParam(value="page", required=false) final Integer page,
+      @RequestParam(value="size",required=false) final Integer size,
+      @RequestParam(value="sortColumn",required=false) final String sortColumn,
+      @RequestParam(value="sortDirection", required=false) final String sortDirection) {
     return ResponseEntity.ok(
         this.groupService.fetchGroups(employee, this.createPageRequest(page, size, sortColumn, sortDirection))
     );