Class: Zavudev::Resources::Contacts

Inherits:
Object
  • Object
show all
Defined in:
lib/zavudev/resources/contacts.rb,
lib/zavudev/resources/contacts/channels.rb

Defined Under Namespace

Classes: Channels

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(client:) ⇒ Contacts

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.

Returns a new instance of Contacts.

Parameters:



176
177
178
179
# File 'lib/zavudev/resources/contacts.rb', line 176

def initialize(client:)
  @client = client
  @channels = Zavudev::Resources::Contacts::Channels.new(client: client)
end

Instance Attribute Details

#channelsZavudev::Resources::Contacts::Channels (readonly)



7
8
9
# File 'lib/zavudev/resources/contacts.rb', line 7

def channels
  @channels
end

Instance Method Details

#create(channels:, display_name: nil, metadata: nil, request_options: {}) ⇒ Zavudev::Models::Contact

Create a new contact with one or more communication channels.

Parameters:

Returns:

See Also:



24
25
26
27
28
29
30
31
32
33
# File 'lib/zavudev/resources/contacts.rb', line 24

def create(params)
  parsed, options = Zavudev::ContactCreateParams.dump_request(params)
  @client.request(
    method: :post,
    path: "v1/contacts",
    body: parsed,
    model: Zavudev::Contact,
    options: options
  )
end

#dismiss_merge_suggestion(contact_id, request_options: {}) ⇒ nil

Dismiss the merge suggestion for a contact.

Parameters:

Returns:

  • (nil)

See Also:



115
116
117
118
119
120
121
122
# File 'lib/zavudev/resources/contacts.rb', line 115

def dismiss_merge_suggestion(contact_id, params = {})
  @client.request(
    method: :delete,
    path: ["v1/contacts/%1$s/merge-suggestion", contact_id],
    model: NilClass,
    options: params[:request_options]
  )
end

#list(cursor: nil, limit: nil, phone_number: nil, request_options: {}) ⇒ Zavudev::Internal::Cursor<Zavudev::Models::Contact>

List contacts with their communication channels.

Parameters:

  • cursor (String)
  • limit (Integer)
  • phone_number (String)
  • request_options (Zavudev::RequestOptions, Hash{Symbol=>Object}, nil)

Returns:

See Also:



92
93
94
95
96
97
98
99
100
101
102
103
# File 'lib/zavudev/resources/contacts.rb', line 92

def list(params = {})
  parsed, options = Zavudev::ContactListParams.dump_request(params)
  query = Zavudev::Internal::Util.encode_query_params(parsed)
  @client.request(
    method: :get,
    path: "v1/contacts",
    query: query.transform_keys(phone_number: "phoneNumber"),
    page: Zavudev::Internal::Cursor,
    model: Zavudev::Contact,
    options: options
  )
end

#merge(contact_id, source_contact_id:, request_options: {}) ⇒ Zavudev::Models::Contact

Some parameter documentations has been truncated, see Models::ContactMergeParams for more details.

Merge a source contact into this contact. All channels from the source contact will be moved to the target contact, and the source contact will be marked as merged.

Parameters:

  • contact_id (String)
  • source_contact_id (String)

    ID of the contact to merge into the target contact. The source contact will be m

  • request_options (Zavudev::RequestOptions, Hash{Symbol=>Object}, nil)

Returns:

See Also:



142
143
144
145
146
147
148
149
150
151
# File 'lib/zavudev/resources/contacts.rb', line 142

def merge(contact_id, params)
  parsed, options = Zavudev::ContactMergeParams.dump_request(params)
  @client.request(
    method: :post,
    path: ["v1/contacts/%1$s/merge", contact_id],
    body: parsed,
    model: Zavudev::Contact,
    options: options
  )
end

#retrieve(contact_id, request_options: {}) ⇒ Zavudev::Models::Contact

Get contact

Parameters:

Returns:

See Also:



45
46
47
48
49
50
51
52
# File 'lib/zavudev/resources/contacts.rb', line 45

def retrieve(contact_id, params = {})
  @client.request(
    method: :get,
    path: ["v1/contacts/%1$s", contact_id],
    model: Zavudev::Contact,
    options: params[:request_options]
  )
end

#retrieve_by_phone(phone_number, request_options: {}) ⇒ Zavudev::Models::Contact

Get contact by phone number

Parameters:

  • phone_number (String)

    E.164 phone number.

  • request_options (Zavudev::RequestOptions, Hash{Symbol=>Object}, nil)

Returns:

See Also:



164
165
166
167
168
169
170
171
# File 'lib/zavudev/resources/contacts.rb', line 164

def retrieve_by_phone(phone_number, params = {})
  @client.request(
    method: :get,
    path: ["v1/contacts/phone/%1$s", phone_number],
    model: Zavudev::Contact,
    options: params[:request_options]
  )
end

#update(contact_id, default_channel: nil, metadata: nil, request_options: {}) ⇒ Zavudev::Models::Contact

Update contact

Parameters:

Returns:

See Also:



69
70
71
72
73
74
75
76
77
78
# File 'lib/zavudev/resources/contacts.rb', line 69

def update(contact_id, params = {})
  parsed, options = Zavudev::ContactUpdateParams.dump_request(params)
  @client.request(
    method: :patch,
    path: ["v1/contacts/%1$s", contact_id],
    body: parsed,
    model: Zavudev::Contact,
    options: options
  )
end