class BeeiqAPI::Client
Attributes
sender_email[R]
webhook_url[R]
Public Class Methods
new(webhook_url = nil, sender_email = nil)
click to toggle source
# File lib/beeiq_api.rb, line 17 def initialize(webhook_url = nil, sender_email = nil) webhook_url ||= BeeiqAPI.configuration.webhook_url sender_email ||= BeeiqAPI.configuration.sender_email raise ArgumentError, 'Missing webhook url' if webhook_url.to_s.empty? raise ArgumentError, 'Missing sender_email' if sender_email.to_s.empty? @webhook_url = webhook_url @sender_email = sender_email end
Public Instance Methods
build_contact_payload(action, data)
click to toggle source
# File lib/beeiq_api.rb, line 82 def build_contact_payload(action, data) data.map do |item| contact = BeeiqAPI::Contact.new item { actionType: action, data: contact.payload } end end
build_payload(action, data)
click to toggle source
# File lib/beeiq_api.rb, line 57 def build_payload(action, data) payload = case action when Config::ActionType::ADD_TICKET build_ticket_payload(data) when Config::ActionType::ADD_CONTACT, Config::ActionType::UPDATE_CONTACT build_contact_payload(action, data) end { senderUser: @sender_email, data: payload } end
build_ticket_payload(data)
click to toggle source
# File lib/beeiq_api.rb, line 72 def build_ticket_payload(data) data.map do |item| ticket = BeeiqAPI::Ticket.new item { actionType: Config::ActionType::ADD_TICKET, data: ticket.payload } end end
create_contact(data = {})
click to toggle source
# File lib/beeiq_api.rb, line 36 def create_contact(data = {}) create_many_contact([data]) end
create_many_contact(data = [])
click to toggle source
# File lib/beeiq_api.rb, line 40 def create_many_contact(data = []) create_or_update_contact(Config::ActionType::ADD_CONTACT, data) end
create_many_ticket(data = [])
click to toggle source
# File lib/beeiq_api.rb, line 32 def create_many_ticket(data = []) create_or_update_contact(Config::ActionType::ADD_TICKET, data) end
create_or_update_contact(action, data)
click to toggle source
# File lib/beeiq_api.rb, line 52 def create_or_update_contact(action, data) payload = build_payload(action, data) process(:post, payload) end
create_ticket(data = {})
click to toggle source
# File lib/beeiq_api.rb, line 28 def create_ticket(data = {}) create_many_ticket([data]) end
update_contact(data = {})
click to toggle source
# File lib/beeiq_api.rb, line 44 def update_contact(data = {}) update_many_contact([data]) end
update_many_contact(data = [])
click to toggle source
# File lib/beeiq_api.rb, line 48 def update_many_contact(data = []) create_or_update_contact(Config::ActionType::UPDATE_CONTACT, data) end
Private Instance Methods
process(verb, data=nil)
click to toggle source
# File lib/beeiq_api.rb, line 94 def process(verb, data=nil) begin BeeiqAPI::Response.new ::RestClient::Request.execute(method: verb, url: @webhook_url, headers: { 'Content-Type': 'application/json' }, payload: data.to_json, timeout: 10) rescue ::RestClient::ExceptionWithResponse => e BeeiqAPI::Response.new e.response end end