diff --git a/restcomm/restcomm.application/src/main/webapp/WEB-INF/scripts/mariadb/sql/applications.xml b/restcomm/restcomm.application/src/main/webapp/WEB-INF/scripts/mariadb/sql/applications.xml
index 9ed3309469..e4ddd01c75 100644
--- a/restcomm/restcomm.application/src/main/webapp/WEB-INF/scripts/mariadb/sql/applications.xml
+++ b/restcomm/restcomm.application/src/main/webapp/WEB-INF/scripts/mariadb/sql/applications.xml
@@ -10,7 +10,7 @@
VALUES (#{sid}, #{date_created}, #{date_updated}, #{friendly_name}, #{account_sid}, #{api_version}, #{voice_caller_id_lookup},
#{uri}, #{rcml_url}, #{kind});
-
+
@@ -18,7 +18,7 @@
-
+
@@ -44,18 +44,50 @@
WHERE (app.account_sid=#{account_sid} or app.account_sid is null)
ORDER BY app.date_created, app.sid;
-
+
+
+
+
+
DELETE FROM restcomm_applications WHERE sid=#{sid};
-
+
DELETE FROM restcomm_applications WHERE account_sid=#{account_sid};
-
+
- UPDATE restcomm_applications SET friendly_name=#{friendly_name}, date_updated=#{date_updated},
- voice_caller_id_lookup=#{voice_caller_id_lookup}, rcml_url=#{rcml_url}, kind=#{kind}
+ UPDATE restcomm_applications SET friendly_name=#{friendly_name}, date_updated=#{date_updated},
+ voice_caller_id_lookup=#{voice_caller_id_lookup}, rcml_url=#{rcml_url}, kind=#{kind}
WHERE sid=#{sid};
diff --git a/restcomm/restcomm.application/src/main/webapp/WEB-INF/sql/applications.xml b/restcomm/restcomm.application/src/main/webapp/WEB-INF/sql/applications.xml
index 81206d8acc..3def2546a0 100644
--- a/restcomm/restcomm.application/src/main/webapp/WEB-INF/sql/applications.xml
+++ b/restcomm/restcomm.application/src/main/webapp/WEB-INF/sql/applications.xml
@@ -65,6 +65,37 @@
ORDER BY "app"."date_created", "app"."sid";
+
+
+
DELETE FROM "restcomm_applications" WHERE "sid"=#{sid};
@@ -79,4 +110,4 @@
"voice_caller_id_lookup"=#{voice_caller_id_lookup}, "rcml_url"=#{rcml_url}, "kind"=#{kind}
WHERE "sid"=#{sid};
-
\ No newline at end of file
+
diff --git a/restcomm/restcomm.dao/src/main/java/org/restcomm/connect/dao/ApplicationsDao.java b/restcomm/restcomm.dao/src/main/java/org/restcomm/connect/dao/ApplicationsDao.java
index 7cfd20806e..1703a02c0d 100644
--- a/restcomm/restcomm.dao/src/main/java/org/restcomm/connect/dao/ApplicationsDao.java
+++ b/restcomm/restcomm.dao/src/main/java/org/restcomm/connect/dao/ApplicationsDao.java
@@ -23,25 +23,30 @@
import org.restcomm.connect.commons.dao.Sid;
import org.restcomm.connect.dao.entities.Application;
+import org.restcomm.connect.dao.entities.ApplicationFilter;
/**
* @author quintana.thomas@gmail.com (Thomas Quintana)
*/
public interface ApplicationsDao {
- void addApplication(Application application);
+ void addApplication ( Application application );
- Application getApplication(Sid sid);
+ Application getApplication ( Sid sid );
- Application getApplication(String friendlyName);
+ Application getApplication ( String friendlyName );
- List getApplications(Sid accountSid);
+ List getApplications ( Sid accountSid );
+
+ List getApplications ( ApplicationFilter filter );
// this may optionally return related numbers as part of an Application
- List getApplicationsWithNumbers(Sid accountSid);
+ List getApplicationsWithNumbers ( Sid accountSid );
+
+ List getApplicationsWithNumbers ( ApplicationFilter filter );
- void removeApplication(Sid sid);
+ void removeApplication ( Sid sid );
- void removeApplications(Sid accountSid);
+ void removeApplications ( Sid accountSid );
- void updateApplication(Application application);
+ void updateApplication ( Application application );
}
diff --git a/restcomm/restcomm.dao/src/main/java/org/restcomm/connect/dao/entities/ApplicationFilter.java b/restcomm/restcomm.dao/src/main/java/org/restcomm/connect/dao/entities/ApplicationFilter.java
new file mode 100644
index 0000000000..afe1666695
--- /dev/null
+++ b/restcomm/restcomm.dao/src/main/java/org/restcomm/connect/dao/entities/ApplicationFilter.java
@@ -0,0 +1,45 @@
+/*
+ * TeleStax, Open Source Cloud Communications
+ * Copyright 2011-2014, Telestax Inc and individual contributors
+ * by the @authors tag.
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * under the terms of the GNU Affero General Public License as
+ * published by the Free Software Foundation; either version 3 of
+ * the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see
+ *
+ */
+package org.restcomm.connect.dao.entities;
+
+import org.restcomm.connect.commons.annotations.concurrency.Immutable;
+
+@Immutable
+public class ApplicationFilter {
+ private final String accountSid;
+ private final String friendlyName;
+
+ public ApplicationFilter ( String accountSid, String friendlyName ) {
+ this.accountSid = accountSid;
+ this.friendlyName = friendlyName;
+ }
+
+ public String getAccountSid ( ) {
+ return accountSid;
+ }
+
+ /**
+ * @return the friendlyName
+ */
+ public String getFriendlyName ( ) {
+ return friendlyName;
+ }
+
+}
diff --git a/restcomm/restcomm.dao/src/main/java/org/restcomm/connect/dao/mybatis/MybatisApplicationsDao.java b/restcomm/restcomm.dao/src/main/java/org/restcomm/connect/dao/mybatis/MybatisApplicationsDao.java
index 557288b65e..65911291f2 100644
--- a/restcomm/restcomm.dao/src/main/java/org/restcomm/connect/dao/mybatis/MybatisApplicationsDao.java
+++ b/restcomm/restcomm.dao/src/main/java/org/restcomm/connect/dao/mybatis/MybatisApplicationsDao.java
@@ -25,6 +25,7 @@
import org.restcomm.connect.commons.annotations.concurrency.ThreadSafe;
import org.restcomm.connect.dao.ApplicationsDao;
import org.restcomm.connect.dao.entities.Application;
+import org.restcomm.connect.dao.entities.ApplicationFilter;
import org.restcomm.connect.commons.dao.Sid;
import org.restcomm.connect.dao.entities.ApplicationNumberSummary;
@@ -124,6 +125,36 @@ public List getApplicationsWithNumbers(Sid accountSid) {
}
}
+ @Override
+ public List getApplicationsWithNumbers (ApplicationFilter filter) {
+ final SqlSession session = sessions.openSession();
+ try {
+ final List