Class: Esputnik::Client
- Inherits:
-
Object
- Object
- Esputnik::Client
- Defined in:
- lib/esputnik/client.rb
Constant Summary collapse
- BASE_URL =
'https://esputnik.com/api/v1'
Instance Method Summary collapse
-
#contact_subscribe(contact:, groups: nil, form_type: nil) ⇒ Object
Метод применяется для подключения форм подписки и в других случаях.
-
#contact_update(id:, contact:, groups: nil, form_type: nil) ⇒ Object
Метод для обновления одного контакта.
-
#initialize(login:, password:, logger: nil) ⇒ Client
constructor
A new instance of Client.
- #send_event(event_type_key:, key_value:, params: {}) ⇒ Object
-
#simple_contact_subscribe(email:, phone:, additional_data:) ⇒ Object
Метод, упрощающий работу с API eSputnik additional_data - [<key_id>, value: value, … ].
- #simple_contact_update(id:, email:, phone:, additional_data:) ⇒ Object
- #version ⇒ Object
Constructor Details
#initialize(login:, password:, logger: nil) ⇒ Client
Returns a new instance of Client.
7 8 9 10 11 |
# File 'lib/esputnik/client.rb', line 7 def initialize(login:, password:, logger: nil) @login = login @password = password @logger = logger end |
Instance Method Details
#contact_subscribe(contact:, groups: nil, form_type: nil) ⇒ Object
Метод применяется для подключения форм подписки и в других случаях. Создает новые контакты, существующие обновляет. Создает в системе события для запуска сценариев. Новые контакты создаются в статусе “неподтвержденный”, что позволяет реализовать double opt-in.
47 48 49 50 51 52 53 54 55 |
# File 'lib/esputnik/client.rb', line 47 def contact_subscribe(contact:, groups: nil, form_type: nil) raise Error, 'Esputnik::Contact expected' unless contact.is_a?(Esputnik::Contact) raise Error, contact.errors unless contact.valid? post '/contact/subscribe', 'contact' => contact.as_json, 'groups' => groups, 'formType' => form_type end |
#contact_update(id:, contact:, groups: nil, form_type: nil) ⇒ Object
Метод для обновления одного контакта. Новые контакты не создает. Чтобы обновить контакт этим методом надо знать id контакта в нашей системе. Подробнее.
60 61 62 63 64 65 66 67 68 |
# File 'lib/esputnik/client.rb', line 60 def contact_update(id:, contact:, groups: nil, form_type: nil) raise Error, 'Esputnik::Contact expected' unless contact.is_a?(Esputnik::Contact) raise Error, contact.errors unless contact.valid? put "/contact/#{id}", 'contact' => contact.as_json, 'groups' => groups, 'formType' => form_type end |
#send_event(event_type_key:, key_value:, params: {}) ⇒ Object
17 18 19 20 21 22 |
# File 'lib/esputnik/client.rb', line 17 def send_event(event_type_key:, key_value:, params: {}) post '/event', 'eventTypeKey' => event_type_key, 'keyValue' => key_value, 'params' => wrap_key_value(params) end |
#simple_contact_subscribe(email:, phone:, additional_data:) ⇒ Object
Метод, упрощающий работу с API eSputnik additional_data - [<key_id>, value: value, … ]
27 28 29 30 31 32 33 |
# File 'lib/esputnik/client.rb', line 27 def simple_contact_subscribe(email:, phone:, additional_data:) contact = Esputnik::Contact.new contact.channels = channels_pair(email: email, phone: phone) contact.fields = additional_data contact_subscribe(contact: contact) end |
#simple_contact_update(id:, email:, phone:, additional_data:) ⇒ Object
35 36 37 38 39 40 41 |
# File 'lib/esputnik/client.rb', line 35 def simple_contact_update(id:, email:, phone:, additional_data:) contact = Esputnik::Contact.new contact.channels = channels_pair(email: email, phone: phone) contact.fields = additional_data contact_update(id: id, contact: contact) end |
#version ⇒ Object
13 14 15 |
# File 'lib/esputnik/client.rb', line 13 def version get '/version' end |