From 532c26ed41d24f94791d478c09d5d556d237b2d0 Mon Sep 17 00:00:00 2001 From: globalepub Date: Tue, 9 Apr 2013 18:25:59 +0000 Subject: [PATCH 1/2] Create Fconnectionroutesms Bulk SMS sending --- .../domain/frontlinesms2/Fconnectionroutesms | 45 +++++++++++++++++++ 1 file changed, 45 insertions(+) create mode 100644 plugins/frontlinesms-core/grails-app/domain/frontlinesms2/Fconnectionroutesms diff --git a/plugins/frontlinesms-core/grails-app/domain/frontlinesms2/Fconnectionroutesms b/plugins/frontlinesms-core/grails-app/domain/frontlinesms2/Fconnectionroutesms new file mode 100644 index 000000000..d22ce6e79 --- /dev/null +++ b/plugins/frontlinesms-core/grails-app/domain/frontlinesms2/Fconnectionroutesms @@ -0,0 +1,45 @@ +package frontlinesms2 +import frontlinesms2.camel.routesms.* +import org.apache.camel.Exchange +import org.apache.camel.builder.RouteBuilder +import org.apache.camel.model.RouteDefinition +import frontlinesms2.camel.exception.* +class ClickatellFconnection extends Fconnection { + private static final String ROUTESMS_URL = "http://121.241.242.114/websms/" + static final configFields = ["name", "username", "password"] + static final defaultValues = [] + static String getShortName() { "routesms" } + + String username + String password // FIXME maybe encode this rather than storing plaintext + + static passwords = ['password'] + + static mapping = { + password column: 'routesms_password' + } + + List getRouteDefinitions() { + return new RouteBuilder() { + @Override void configure() {} + List getRouteDefinitions() { + return [from("seda:out-${ClickatellFconnection.this.id}") + .onException(AuthenticationException, InvalidApiIdException) + .handled(true) + .beanRef('fconnectionService', 'handleDisconnection') + .end() + .setHeader(Fconnection.HEADER_FCONNECTION_ID, simple(ClickatellFconnection.this.id.toString())) + .process(new ClickatellPreProcessor()) + .setHeader(Exchange.HTTP_QUERY, + simple('api_id=${header.routesms.apiId}&' + + 'user=${header.routesms.username}&' + + 'password=${header.routesms.password}&' + + 'to=${header.routesms.dst}&' + + 'text=${body}')) + .to(ROUTESMS_URL) + .process(new ClickatellPostProcessor()) + .routeId("out-internet-${ClickatellFconnection.this.id}")] + } + }.routeDefinitions + } +} From ca080d4b26543646e675e1a2cf8c8071b97b2a7a Mon Sep 17 00:00:00 2001 From: globalepub Date: Tue, 9 Apr 2013 19:08:54 +0000 Subject: [PATCH 2/2] Update and rename Fconnectionroutesms to RoutesmsFconnection.groovy --- ...ionroutesms => RoutesmsFconnection.groovy} | 21 ++++++++++++++----- 1 file changed, 16 insertions(+), 5 deletions(-) rename plugins/frontlinesms-core/grails-app/domain/frontlinesms2/{Fconnectionroutesms => RoutesmsFconnection.groovy} (79%) diff --git a/plugins/frontlinesms-core/grails-app/domain/frontlinesms2/Fconnectionroutesms b/plugins/frontlinesms-core/grails-app/domain/frontlinesms2/RoutesmsFconnection.groovy similarity index 79% rename from plugins/frontlinesms-core/grails-app/domain/frontlinesms2/Fconnectionroutesms rename to plugins/frontlinesms-core/grails-app/domain/frontlinesms2/RoutesmsFconnection.groovy index d22ce6e79..1e6353fdb 100644 --- a/plugins/frontlinesms-core/grails-app/domain/frontlinesms2/Fconnectionroutesms +++ b/plugins/frontlinesms-core/grails-app/domain/frontlinesms2/RoutesmsFconnection.groovy @@ -1,10 +1,13 @@ package frontlinesms2 + import frontlinesms2.camel.routesms.* + import org.apache.camel.Exchange import org.apache.camel.builder.RouteBuilder import org.apache.camel.model.RouteDefinition import frontlinesms2.camel.exception.* -class ClickatellFconnection extends Fconnection { + +class RoutesmsFconnection extends Fconnection { private static final String ROUTESMS_URL = "http://121.241.242.114/websms/" static final configFields = ["name", "username", "password"] static final defaultValues = [] @@ -12,7 +15,15 @@ class ClickatellFconnection extends Fconnection { String username String password // FIXME maybe encode this rather than storing plaintext - + String message + /** + *String type + *String dlr + *String destination + *String source + *String server + */ + static passwords = ['password'] static mapping = { @@ -23,7 +34,7 @@ class ClickatellFconnection extends Fconnection { return new RouteBuilder() { @Override void configure() {} List getRouteDefinitions() { - return [from("seda:out-${ClickatellFconnection.this.id}") + return [from("seda:out-${RoutesmsFconnection.this.id}") .onException(AuthenticationException, InvalidApiIdException) .handled(true) .beanRef('fconnectionService', 'handleDisconnection') @@ -37,8 +48,8 @@ class ClickatellFconnection extends Fconnection { 'to=${header.routesms.dst}&' + 'text=${body}')) .to(ROUTESMS_URL) - .process(new ClickatellPostProcessor()) - .routeId("out-internet-${ClickatellFconnection.this.id}")] + .process(new RoutesmsPostProcessor()) + .routeId("out-internet-${RoutesmsFconnection.this.id}")] } }.routeDefinitions }