module Sms77::Hooks::Validator
Public Class Methods
event_type?(str)
click to toggle source
# File lib/sms77/hooks.rb, line 52 def self.event_type?(str) Sms77::Util::in_module_constants?(str, Sms77::Hooks::EventType) end
is_action?(str)
click to toggle source
# File lib/sms77/hooks.rb, line 48 def self.is_action?(str) Sms77::Util::in_module_constants?(str, Sms77::Hooks::Action) end
request_method?(str)
click to toggle source
# File lib/sms77/hooks.rb, line 56 def self.request_method?(str) Sms77::Util::in_module_constants?(str, Sms77::Hooks::RequestMethod) end
subscribe(params)
click to toggle source
# File lib/sms77/hooks.rb, line 36 def self.subscribe(params) { :request_method => Sms77::Hooks::RequestMethod::POST }.merge!(params) self.event_type?(params[:event_type]) && self.request_method?(params[:request_method]) && self.target_url?(params[:target_url]) end
target_url?(str)
click to toggle source
# File lib/sms77/hooks.rb, line 60 def self.target_url?(str) Sms77::Util::is_valid_url?(str) end
unsubscribe(params)
click to toggle source
# File lib/sms77/hooks.rb, line 44 def self.unsubscribe(params) Sms77::Util::is_positive_integer?(params[:id]) end
validate(params)
click to toggle source
# File lib/sms77/hooks.rb, line 24 def self.validate(params) action = params[:action] raise "Unknown action #{action}" unless Sms77::Hooks::Validator::is_action?(action) if Sms77::Hooks::Action::SUBSCRIBE == action raise 'Parameter validation failed' unless Sms77::Hooks::Validator::subscribe(params) elsif Sms77::Hooks::Action::UNSUBSCRIBE == action raise 'ID must be a positive integer' unless Sms77::Hooks::Validator::unsubscribe(params) end end