class Slybroadcast::Client
Constants
- API_URI
- ENDPOINTS
Attributes
credentials[RW]
Public Class Methods
method_missing(method, *args, &block)
click to toggle source
# File lib/slybroadcast/client.rb, line 43 def method_missing(method, *args, &block) instance.send(method, *args, &block) end
Public Instance Methods
account_message_balance()
click to toggle source
# File lib/slybroadcast/client.rb, line 85 def account_message_balance params = set_credentials(remain_message: '1') res = make_post(endpoint_url, params) parse_response(:RemainingMessagesResponse, res) end
campaign(**options)
click to toggle source
# File lib/slybroadcast/client.rb, line 67 def campaign(**options) params = set_credentials(options) res = make_post(endpoint_url, params) parse_response(:CampaignActionsResponse, res) end
campaign_call(**options)
click to toggle source
# File lib/slybroadcast/client.rb, line 55 def campaign_call(**options) params = set_credentials(options) res = make_post(endpoint_url, params) parse_response(:CampaignCallResponse, res) end
campaign_cancel(**options)
click to toggle source
# File lib/slybroadcast/client.rb, line 81 def campaign_cancel(**options) campaign(options.merge(c_option: :stop)) end
campaign_pause(**options)
click to toggle source
# File lib/slybroadcast/client.rb, line 73 def campaign_pause(**options) campaign(options.merge(c_option: :pause)) end
campaign_resume(**options)
click to toggle source
# File lib/slybroadcast/client.rb, line 77 def campaign_resume(**options) campaign(options.merge(c_option: :run)) end
campaign_status(**options)
click to toggle source
# File lib/slybroadcast/client.rb, line 61 def campaign_status(**options) params = set_credentials(options.merge(c_option: :callstatus)) res = make_post(endpoint_url, params) parse_response(:CampaignStatusResponse, res) end
download_audio_file(**options)
click to toggle source
# File lib/slybroadcast/client.rb, line 91 def download_audio_file(**options) params = set_credentials(options) res = make_post(endpoint_url, params) parse_response(:RemainingMessagesResponse, res) end
list_audio_files()
click to toggle source
# File lib/slybroadcast/client.rb, line 97 def list_audio_files params = set_credentials(c_method: 'get_audio_list') res = make_post(endpoint_url, params) parse_response(:AudioFileListResponse, res) end
verify(**options)
click to toggle source
# File lib/slybroadcast/client.rb, line 48 def verify(**options) params = set_credentials(options.merge(c_option: :user_verify)) res = make_post(endpoint_url, params) raise Exceptions::InvalidCredentials, 'Invalid `c_uid` or `c_password`' unless res.body.eql?("OK") true end
Private Instance Methods
endpoint_url()
click to toggle source
# File lib/slybroadcast/client.rb, line 117 def endpoint_url method = caller_locations(1,1).first.label.to_sym URI(File.join(API_URI, ENDPOINTS.fetch(method))) end
handle_error(err)
click to toggle source
# File lib/slybroadcast/client.rb, line 126 def handle_error(err) case err when 'c_uid: required' raise Exceptions::InvalidCredentials, err when 'Bad Audio, can\'t download' raise Exceptions::BadAudio, err when 'session_id: required' raise Exceptions::SessionIdRequired, err when 'already finished' raise Exceptions::CampaignAlreadyFinished, err when 'invalid or not found' raise Exceptions::CampaignNotFound, err else raise StandardError, err end end
make_post(url, params)
click to toggle source
# File lib/slybroadcast/client.rb, line 105 def make_post(url, params) Net::HTTP.post_form( url, params ) end
parse_response(parser, response)
click to toggle source
# File lib/slybroadcast/client.rb, line 112 def parse_response(parser, response) result = Parsers.const_get(parser).new(response.body) result.success? ? result : handle_error(result.error) end
set_credentials(params)
click to toggle source
# File lib/slybroadcast/client.rb, line 122 def set_credentials(params) (self.class.credentials || {}).merge(params) end