Class: Esputnik::Client

Inherits:
Object
  • Object
show all
Defined in:
lib/esputnik/client.rb

Constant Summary collapse

BASE_URL =
'https://esputnik.com/api/v1'

Instance Method Summary collapse

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 = 
  @password = password
  @logger = logger
end

Instance Method Details

#contact_subscribe(contact:, groups: nil, form_type: nil) ⇒ Object

Метод применяется для подключения форм подписки и в других случаях. Создает новые контакты, существующие обновляет. Создает в системе события для запуска сценариев. Новые контакты создаются в статусе “неподтвержденный”, что позволяет реализовать double opt-in.

Raises:



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 контакта в нашей системе. Подробнее.

Raises:



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

#versionObject



13
14
15
# File 'lib/esputnik/client.rb', line 13

def version
  get '/version'
end