Class: Zavudev::Resources::Contacts
- Inherits:
-
Object
- Object
- Zavudev::Resources::Contacts
- 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
-
#create(channels:, display_name: nil, metadata: nil, request_options: {}) ⇒ Zavudev::Models::Contact
Create a new contact with one or more communication channels.
-
#delete(contact_id, request_options: {}) ⇒ nil
Permanently delete a contact and its communication channels.
-
#dismiss_merge_suggestion(contact_id, request_options: {}) ⇒ nil
Dismiss the merge suggestion for a contact.
-
#initialize(client:) ⇒ Contacts
constructor
private
A new instance of Contacts.
-
#list(cursor: nil, limit: nil, phone_number: nil, request_options: {}) ⇒ Zavudev::Internal::Cursor<Zavudev::Models::Contact>
List contacts with their communication channels.
-
#merge(contact_id, source_contact_id:, request_options: {}) ⇒ Zavudev::Models::Contact
Some parameter documentations has been truncated, see Models::ContactMergeParams for more details.
-
#retrieve(contact_id, request_options: {}) ⇒ Zavudev::Models::Contact
Get contact.
-
#retrieve_by_phone(phone_number, request_options: {}) ⇒ Zavudev::Models::Contact
Get contact by phone number.
-
#update(contact_id, default_channel: nil, metadata: nil, request_options: {}) ⇒ Zavudev::Models::Contact
Update contact.
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.
200 201 202 203 |
# File 'lib/zavudev/resources/contacts.rb', line 200 def initialize(client:) @client = client @channels = Zavudev::Resources::Contacts::Channels.new(client: client) end |
Instance Attribute Details
#channels ⇒ Zavudev::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.
24 25 26 27 28 29 30 31 32 33 |
# File 'lib/zavudev/resources/contacts.rb', line 24 def create(params) parsed, = Zavudev::ContactCreateParams.dump_request(params) @client.request( method: :post, path: "v1/contacts", body: parsed, model: Zavudev::Contact, options: ) end |
#delete(contact_id, request_options: {}) ⇒ nil
Permanently delete a contact and its communication channels. Implements right-to-erasure obligations under GDPR Art. 17, Ley 19.628 (Chile) Art. 12, CCPA ยง 1798.105, and LGPD Art. 18.VI. The contact, its channels, and any associated agent flow sessions and conversation threads are removed. Past message records and broadcast delivery logs are retained for billing/audit but no longer reference the deleted contact.
120 121 122 123 124 125 126 127 |
# File 'lib/zavudev/resources/contacts.rb', line 120 def delete(contact_id, params = {}) @client.request( method: :delete, path: ["v1/contacts/%1$s", contact_id], model: NilClass, options: params[:request_options] ) end |
#dismiss_merge_suggestion(contact_id, request_options: {}) ⇒ nil
Dismiss the merge suggestion for a contact.
139 140 141 142 143 144 145 146 |
# File 'lib/zavudev/resources/contacts.rb', line 139 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.
92 93 94 95 96 97 98 99 100 101 102 103 |
# File 'lib/zavudev/resources/contacts.rb', line 92 def list(params = {}) parsed, = 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: ) 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.
166 167 168 169 170 171 172 173 174 175 |
# File 'lib/zavudev/resources/contacts.rb', line 166 def merge(contact_id, params) parsed, = Zavudev::ContactMergeParams.dump_request(params) @client.request( method: :post, path: ["v1/contacts/%1$s/merge", contact_id], body: parsed, model: Zavudev::Contact, options: ) end |
#retrieve(contact_id, request_options: {}) ⇒ Zavudev::Models::Contact
Get contact
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
188 189 190 191 192 193 194 195 |
# File 'lib/zavudev/resources/contacts.rb', line 188 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
69 70 71 72 73 74 75 76 77 78 |
# File 'lib/zavudev/resources/contacts.rb', line 69 def update(contact_id, params = {}) parsed, = Zavudev::ContactUpdateParams.dump_request(params) @client.request( method: :patch, path: ["v1/contacts/%1$s", contact_id], body: parsed, model: Zavudev::Contact, options: ) end |