Class: BeeiqAPI::Client
- Inherits:
-
Object
- Object
- BeeiqAPI::Client
- Defined in:
- lib/beeiq_api.rb
Instance Attribute Summary collapse
-
#sender_email ⇒ Object
readonly
Returns the value of attribute sender_email.
-
#webhook_url ⇒ Object
readonly
Returns the value of attribute webhook_url.
Instance Method Summary collapse
- #build_contact_payload(action, data) ⇒ Object
- #build_payload(action, data) ⇒ Object
- #build_ticket_payload(data) ⇒ Object
- #create_contact(data = {}) ⇒ Object
- #create_many_contact(data = []) ⇒ Object
- #create_many_ticket(data = []) ⇒ Object
- #create_or_update_contact(action, data) ⇒ Object
- #create_ticket(data = {}) ⇒ Object
-
#initialize(webhook_url = nil, sender_email = nil) ⇒ Client
constructor
A new instance of Client.
- #update_contact(data = {}) ⇒ Object
- #update_many_contact(data = []) ⇒ Object
Constructor Details
#initialize(webhook_url = nil, sender_email = nil) ⇒ Client
Returns a new instance of Client.
17 18 19 20 21 22 23 24 25 26 |
# 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 |
Instance Attribute Details
#sender_email ⇒ Object (readonly)
Returns the value of attribute sender_email.
15 16 17 |
# File 'lib/beeiq_api.rb', line 15 def sender_email @sender_email end |
#webhook_url ⇒ Object (readonly)
Returns the value of attribute webhook_url.
14 15 16 |
# File 'lib/beeiq_api.rb', line 14 def webhook_url @webhook_url end |
Instance Method Details
#build_contact_payload(action, data) ⇒ Object
82 83 84 85 86 87 88 89 90 |
# 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) ⇒ Object
57 58 59 60 61 62 63 64 65 66 67 68 69 70 |
# 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) ⇒ Object
72 73 74 75 76 77 78 79 80 |
# 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 = {}) ⇒ Object
36 37 38 |
# File 'lib/beeiq_api.rb', line 36 def create_contact(data = {}) create_many_contact([data]) end |
#create_many_contact(data = []) ⇒ Object
40 41 42 |
# 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 = []) ⇒ Object
32 33 34 |
# 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) ⇒ Object
52 53 54 55 |
# 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 = {}) ⇒ Object
28 29 30 |
# File 'lib/beeiq_api.rb', line 28 def create_ticket(data = {}) create_many_ticket([data]) end |
#update_contact(data = {}) ⇒ Object
44 45 46 |
# File 'lib/beeiq_api.rb', line 44 def update_contact(data = {}) update_many_contact([data]) end |
#update_many_contact(data = []) ⇒ Object
48 49 50 |
# File 'lib/beeiq_api.rb', line 48 def update_many_contact(data = []) create_or_update_contact(Config::ActionType::UPDATE_CONTACT, data) end |