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