Class: Keplars::Resources::Contacts

Inherits:
Base
  • Object
show all
Defined in:
lib/keplars/contacts.rb

Instance Method Summary collapse

Methods inherited from Base

#initialize

Constructor Details

This class inherits a constructor from Keplars::Resources::Base

Instance Method Details

#add(**params) ⇒ Object



4
5
6
# File 'lib/keplars/contacts.rb', line 4

def add(**params)
  @client.request('POST', '/api/v1/public/contacts/add-contact', body: params.compact)[:data]
end

#delete(id_or_email) ⇒ Object



36
37
38
39
40
41
42
43
44
# File 'lib/keplars/contacts.rb', line 36

def delete(id_or_email)
  if id_or_email.include?('@')
    warn '[Keplars] Deprecated: passing email to delete() is deprecated since v2.7.0. Use contact ID instead.'
    param = 'email'
  else
    param = 'id'
  end
  @client.request('DELETE', "/api/v1/public/contacts/delete-contact?#{param}=#{URI.encode_www_form_component(id_or_email)}")[:data]
end

#get(email_or_id) ⇒ Object



8
9
10
11
# File 'lib/keplars/contacts.rb', line 8

def get(email_or_id)
  param = email_or_id.include?('@') ? 'email' : 'id'
  @client.request('GET', "/api/v1/public/contacts/get-contact?#{param}=#{URI.encode_www_form_component(email_or_id)}")[:data]
end

#list(audience_id: nil, page: nil, limit: nil, sort_by: nil, sort_dir: nil, subscribed_only: nil) ⇒ Object



13
14
15
16
17
18
19
20
21
22
23
24
# File 'lib/keplars/contacts.rb', line 13

def list(audience_id: nil, page: nil, limit: nil, sort_by: nil, sort_dir: nil, subscribed_only: nil)
  params = {}
  params[:audienceId] = audience_id if audience_id
  params[:page] = page if page
  params[:limit] = limit if limit
  params[:sortBy] = sort_by if sort_by
  params[:sortDir] = sort_dir if sort_dir
  params[:subscribedOnly] = subscribed_only.to_s if !subscribed_only.nil?

  query = @client.send(:build_query_string, params)
  @client.request('GET', "/api/v1/public/contacts/get-contacts#{query}")[:data]
end

#update(id_or_email, **params) ⇒ Object



26
27
28
29
30
31
32
33
34
# File 'lib/keplars/contacts.rb', line 26

def update(id_or_email, **params)
  if id_or_email.include?('@')
    warn '[Keplars] Deprecated: passing email to update() is deprecated since v2.7.0. Use contact ID instead.'
    param = 'email'
  else
    param = 'id'
  end
  @client.request('PATCH', "/api/v1/public/contacts/update-contact?#{param}=#{URI.encode_www_form_component(id_or_email)}", body: params.compact)[:data]
end