summaryrefslogtreecommitdiff
path: root/app/models
diff options
context:
space:
mode:
Diffstat (limited to 'app/models')
-rw-r--r--app/models/call_route.rb8
-rw-r--r--app/models/route_element.rb15
2 files changed, 23 insertions, 0 deletions
diff --git a/app/models/call_route.rb b/app/models/call_route.rb
index de0f68a..f6a3dd3 100644
--- a/app/models/call_route.rb
+++ b/app/models/call_route.rb
@@ -1,4 +1,6 @@
class CallRoute < ActiveRecord::Base
+ ROUTING_TABLES = ['prerouting', 'outbound', 'inbound']
+
attr_accessible :table, :name, :endpoint_type, :endpoint_id, :position
has_many :route_elements, :dependent => :destroy
@@ -6,6 +8,12 @@ class CallRoute < ActiveRecord::Base
validates :name,
:presence => true
+ validates :table,
+ :presence => true,
+ :inclusion => { :in => ROUTING_TABLES }
+
+ acts_as_list :scope => '`table` = \'#{table}\''
+
def to_s
name.to_s
end
diff --git a/app/models/route_element.rb b/app/models/route_element.rb
index 11bb54a..d3302ea 100644
--- a/app/models/route_element.rb
+++ b/app/models/route_element.rb
@@ -1,8 +1,23 @@
class RouteElement < ActiveRecord::Base
+ ELEMENT_ACTIONS = ['match', 'not_match', 'set_route_var', 'set_header']
+
attr_accessible :call_route_id, :var_in, :var_out, :pattern, :replacement, :action, :mandatory, :position
belongs_to :call_route
+ acts_as_list :scope => :call_route
+
+ validates :var_in,
+ :presence => true
+
+ validates :pattern,
+ :presence => true
+
+ validates :action,
+ :presence => true,
+ :inclusion => { :in => ELEMENT_ACTIONS }
+
+
def to_s
"#{var_in} #{var_out}"
end