You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@fineract.apache.org by na...@apache.org on 2016/11/18 09:32:39 UTC

incubator-fineract git commit: Added pagination for listing SMS campaign

Repository: incubator-fineract
Updated Branches:
  refs/heads/develop 117a9f51c -> e79d51ee5


Added pagination for listing  SMS campaign


Project: http://git-wip-us.apache.org/repos/asf/incubator-fineract/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-fineract/commit/e79d51ee
Tree: http://git-wip-us.apache.org/repos/asf/incubator-fineract/tree/e79d51ee
Diff: http://git-wip-us.apache.org/repos/asf/incubator-fineract/diff/e79d51ee

Branch: refs/heads/develop
Commit: e79d51ee5a3b9370fddf1f543d5f96d521cd17e4
Parents: 117a9f5
Author: Satish <sa...@confluxtechnologies.com>
Authored: Fri Nov 18 12:24:08 2016 +0530
Committer: Satish <sa...@confluxtechnologies.com>
Committed: Fri Nov 18 14:43:57 2016 +0530

----------------------------------------------------------------------
 .../sms/api/SmsCampaignApiResource.java         | 10 +++++++---
 .../service/SmsCampaignReadPlatformService.java |  5 +++--
 .../SmsCampaignReadPlatformServiceImpl.java     | 20 +++++++++++++++++---
 .../infrastructure/jobs/service/JobName.java    |  6 +++---
 .../migrations/core_db/V322__sms_campaign.sql   |  6 +++---
 5 files changed, 33 insertions(+), 14 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-fineract/blob/e79d51ee/fineract-provider/src/main/java/org/apache/fineract/infrastructure/campaigns/sms/api/SmsCampaignApiResource.java
----------------------------------------------------------------------
diff --git a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/campaigns/sms/api/SmsCampaignApiResource.java b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/campaigns/sms/api/SmsCampaignApiResource.java
index 5c7dd7b..54e714c 100644
--- a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/campaigns/sms/api/SmsCampaignApiResource.java
+++ b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/campaigns/sms/api/SmsCampaignApiResource.java
@@ -18,7 +18,6 @@
  */
 package org.apache.fineract.infrastructure.campaigns.sms.api;
 
-import java.util.Collection;
 import java.util.HashSet;
 
 import javax.ws.rs.Consumes;
@@ -50,6 +49,8 @@ import org.apache.fineract.infrastructure.core.data.CommandProcessingResult;
 import org.apache.fineract.infrastructure.core.serialization.ApiRequestJsonSerializationSettings;
 import org.apache.fineract.infrastructure.core.serialization.DefaultToApiJsonSerializer;
 import org.apache.fineract.infrastructure.core.serialization.FromJsonHelper;
+import org.apache.fineract.infrastructure.core.service.Page;
+import org.apache.fineract.infrastructure.core.service.SearchParameters;
 import org.apache.fineract.infrastructure.security.service.PlatformSecurityContext;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.context.annotation.Scope;
@@ -125,9 +126,12 @@ public class SmsCampaignApiResource {
 
     @GET
     @Produces({ MediaType.APPLICATION_JSON })
-    public String retrieveAllCampaigns(@Context final UriInfo uriInfo) {
+    public String retrieveAllCampaigns(@QueryParam("sqlSearch") final String sqlSearch,
+            @QueryParam("offset") final Integer offset, @QueryParam("limit") final Integer limit,
+            @QueryParam("orderBy") final String orderBy, @QueryParam("sortOrder") final String sortOrder, @Context final UriInfo uriInfo) {
         this.platformSecurityContext.authenticatedUser().validateHasReadPermission(SmsCampaignConstants.RESOURCE_NAME);
-        Collection<SmsCampaignData> smsCampaignDataCollection = this.smsCampaignReadPlatformService.retrieveAll();
+        final SearchParameters searchParameters = SearchParameters.forSMSCampaign(sqlSearch, offset, limit, orderBy, sortOrder);
+        Page<SmsCampaignData> smsCampaignDataCollection = this.smsCampaignReadPlatformService.retrieveAll(searchParameters);
         final ApiRequestJsonSerializationSettings settings = this.apiRequestParameterHelper.process(uriInfo.getQueryParameters());
         return this.toApiJsonSerializer.serialize(settings, smsCampaignDataCollection);
     }

http://git-wip-us.apache.org/repos/asf/incubator-fineract/blob/e79d51ee/fineract-provider/src/main/java/org/apache/fineract/infrastructure/campaigns/sms/service/SmsCampaignReadPlatformService.java
----------------------------------------------------------------------
diff --git a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/campaigns/sms/service/SmsCampaignReadPlatformService.java b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/campaigns/sms/service/SmsCampaignReadPlatformService.java
index 8f478bc..880f5a0 100644
--- a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/campaigns/sms/service/SmsCampaignReadPlatformService.java
+++ b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/campaigns/sms/service/SmsCampaignReadPlatformService.java
@@ -19,15 +19,16 @@
 package org.apache.fineract.infrastructure.campaigns.sms.service;
 
 import java.util.Collection;
-import java.util.List;
 
 import org.apache.fineract.infrastructure.campaigns.sms.data.SmsCampaignData;
+import org.apache.fineract.infrastructure.core.service.Page;
+import org.apache.fineract.infrastructure.core.service.SearchParameters;
 
 public interface SmsCampaignReadPlatformService {
 
     public SmsCampaignData retrieveOne(final Long campaignId);
 
-    public List<SmsCampaignData> retrieveAll();
+    public Page<SmsCampaignData> retrieveAll(final SearchParameters searchParameters);
 
     public SmsCampaignData retrieveTemplate(final String reportType);
 

http://git-wip-us.apache.org/repos/asf/incubator-fineract/blob/e79d51ee/fineract-provider/src/main/java/org/apache/fineract/infrastructure/campaigns/sms/service/SmsCampaignReadPlatformServiceImpl.java
----------------------------------------------------------------------
diff --git a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/campaigns/sms/service/SmsCampaignReadPlatformServiceImpl.java b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/campaigns/sms/service/SmsCampaignReadPlatformServiceImpl.java
index ba7be61..94215b0 100644
--- a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/campaigns/sms/service/SmsCampaignReadPlatformServiceImpl.java
+++ b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/campaigns/sms/service/SmsCampaignReadPlatformServiceImpl.java
@@ -37,7 +37,10 @@ import org.apache.fineract.infrastructure.campaigns.sms.domain.SmsCampaignStatus
 import org.apache.fineract.infrastructure.campaigns.sms.exception.SmsCampaignNotFound;
 import org.apache.fineract.infrastructure.core.data.EnumOptionData;
 import org.apache.fineract.infrastructure.core.domain.JdbcSupport;
+import org.apache.fineract.infrastructure.core.service.Page;
+import org.apache.fineract.infrastructure.core.service.PaginationHelper;
 import org.apache.fineract.infrastructure.core.service.RoutingDataSource;
+import org.apache.fineract.infrastructure.core.service.SearchParameters;
 import org.apache.fineract.portfolio.calendar.service.CalendarDropdownReadPlatformService;
 import org.joda.time.DateTime;
 import org.joda.time.LocalDate;
@@ -57,6 +60,7 @@ public class SmsCampaignReadPlatformServiceImpl implements SmsCampaignReadPlatfo
     private final SmsCampaignDropdownReadPlatformService smsCampaignDropdownReadPlatformService;
     private final SmsCampaignMapper smsCampaignMapper;
     private final CalendarDropdownReadPlatformService calendarDropdownReadPlatformService;
+    private final PaginationHelper<SmsCampaignData> paginationHelper = new PaginationHelper<>();
 
     @Autowired
     public SmsCampaignReadPlatformServiceImpl(final RoutingDataSource dataSource,
@@ -81,10 +85,20 @@ public class SmsCampaignReadPlatformServiceImpl implements SmsCampaignReadPlatfo
     }
 
     @Override
-    public List<SmsCampaignData> retrieveAll() {
+    public Page<SmsCampaignData> retrieveAll(final SearchParameters searchParameters) {
         final Integer visible = 1;
-        final String sql = "select " + this.smsCampaignMapper.schema() + " where sc.is_visible = ?";
-        return this.jdbcTemplate.query(sql, this.smsCampaignMapper, new Object[] {visible});
+        final StringBuilder sqlBuilder = new StringBuilder(200);
+        sqlBuilder.append("select SQL_CALC_FOUND_ROWS ");
+        sqlBuilder.append(this.smsCampaignMapper.schema() + " where sc.is_visible = ? ");
+        if (searchParameters.isLimited()) {
+            sqlBuilder.append(" limit ").append(searchParameters.getLimit());
+            if (searchParameters.isOffset()) {
+                sqlBuilder.append(" offset ").append(searchParameters.getOffset());
+            }
+        }
+        final String sqlCountRows = "SELECT FOUND_ROWS()";
+        return this.paginationHelper.fetchPage(jdbcTemplate, sqlCountRows, sqlBuilder.toString(), new Object[] { visible },
+                this.smsCampaignMapper);
     }
 
     @Override

http://git-wip-us.apache.org/repos/asf/incubator-fineract/blob/e79d51ee/fineract-provider/src/main/java/org/apache/fineract/infrastructure/jobs/service/JobName.java
----------------------------------------------------------------------
diff --git a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/jobs/service/JobName.java b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/jobs/service/JobName.java
index e2589e9..b0b75b1 100755
--- a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/jobs/service/JobName.java
+++ b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/jobs/service/JobName.java
@@ -43,9 +43,9 @@ public enum JobName {
     UPDATE_SAVINGS_DORMANT_ACCOUNTS("Update Savings Dormant Accounts"), //
     ADD_PERIODIC_ACCRUAL_ENTRIES_FOR_LOANS_WITH_INCOME_POSTED_AS_TRANSACTIONS("Add Accrual Transactions For Loans With Income Posted As Transactions"),
     EXECUTE_REPORT_MAILING_JOBS("Execute Report Mailing Jobs"),
-    UPDATE_SMS_OUTBOUND_WITH_CAMPAIGN_MESSAGE("Update Sms Outbound with campaign message"),
-    SEND_MESSAGES_TO_SMS_GATEWAY("Send messages to SMS gateway"), 
-    GET_DELIVERY_REPORTS_FROM_SMS_GATEWAY("Get delivery reports from SMS gateway");
+    UPDATE_SMS_OUTBOUND_WITH_CAMPAIGN_MESSAGE("Update SMS Outbound with Campaign Message"),
+    SEND_MESSAGES_TO_SMS_GATEWAY("Send Messages to SMS Gateway"), 
+    GET_DELIVERY_REPORTS_FROM_SMS_GATEWAY("Get Delivery Reports from SMS Gateway");
 
     private final String name;
 

http://git-wip-us.apache.org/repos/asf/incubator-fineract/blob/e79d51ee/fineract-provider/src/main/resources/sql/migrations/core_db/V322__sms_campaign.sql
----------------------------------------------------------------------
diff --git a/fineract-provider/src/main/resources/sql/migrations/core_db/V322__sms_campaign.sql b/fineract-provider/src/main/resources/sql/migrations/core_db/V322__sms_campaign.sql
index b030097..e3b5bb3 100644
--- a/fineract-provider/src/main/resources/sql/migrations/core_db/V322__sms_campaign.sql
+++ b/fineract-provider/src/main/resources/sql/migrations/core_db/V322__sms_campaign.sql
@@ -54,9 +54,9 @@ ALTER TABLE `sms_messages_outbound`
 
 
 INSERT INTO `job` (`name`, `display_name`, `cron_expression`, `create_time`, `task_priority`, `group_name`, `previous_run_start_time`, `next_run_time`, `job_key`, `initializing_errorlog`, `is_active`, `currently_running`, `updates_allowed`, `scheduler_group`, `is_misfired`) VALUES 
-('Update Sms Outbound with campaign message', 'Update Sms Outbound with campaign message', '0 0 0 1/1 * ? *', NOW(), 3, NULL, NULL, NULL, 'Update Sms Outbound with campaign message1 _ DEFAULT', NULL, 0, 0, 1, 1, 0), 
-('Send messages to SMS gateway', 'Send messages to SMS gateway', '0 0 0 1/1 * ? *', NOW(), 3, NULL, NULL, NULL, 'Send messages to SMS gateway1 _ DEFAULT', NULL, 0, 0, 1, 1, 0), 
-('Get delivery reports from SMS gateway', 'Get delivery reports from SMS gateway', '0 0 0 1/1 * ? *', NOW(), 3, NULL, NULL, NULL, 'Get delivery reports from SMS gateway1 _ DEFAULT', NULL, 0, 0, 1, 1, 0);
+('Update SMS Outbound with Campaign Message', 'Update SMS Outbound with Campaign Message', '0 0 5 1/1 * ? *', NOW(), 3, NULL, NULL, NULL, 'Update SMS Outbound with Campaign Message1 _ DEFAULT', NULL, 1, 0, 1, 4, 0), 
+('Send Messages to SMS Gateway', 'Send Messages to SMS Gateway', '0 0 5 1/1 * ? *', NOW(), 2, NULL, NULL, NULL, 'Send Messages to SMS Gateway1 _ DEFAULT', NULL, 1, 0, 1, 4, 0), 
+('Get Delivery Reports from SMS Gateway', 'Get Delivery Reports from SMS Gateway', '0 0 5 1/1 * ? *', NOW(), 1, NULL, NULL, NULL, 'Get Delivery Reports from SMS Gateway1 _ DEFAULT', NULL, 1, 0, 1, 4, 0);
 
 INSERT INTO  `m_permission` 
 (`grouping` ,`code` ,`entity_name`, `action_name`, `can_maker_checker`) VALUES