Skip to content

Commit fe13451

Browse files
theandrewykimchoran
authored andcommitted
add an alias for archiving users and contacts and update readme accordingly (#442)
remove delete file replace calls to delete with archive
1 parent 55ef6c8 commit fe13451

File tree

8 files changed

+31
-20
lines changed

8 files changed

+31
-20
lines changed

README.md

Lines changed: 10 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -68,9 +68,12 @@ user = intercom.users.find(user_id: "1")
6868
user = intercom.users.find(id: "1")
6969
# Create a user
7070
user = intercom.users.create(email: "[email protected]", name: "Bob Smith", signed_up_at: Time.now.to_i)
71-
# Delete a user
71+
# archive a user
72+
user = intercom.users.find(id: "1") user = intercom.users.find(id: "1")
73+
deleted_user = intercom.users.delete(user) archived_user = intercom.users.archive(user)
74+
# request a hard delete for a user(https://developers.intercom.com/intercom-api-reference/reference#delete-users)
7275
user = intercom.users.find(id: "1")
73-
deleted_user = intercom.users.delete(user)
76+
deleted_user = intercom.users.request_hard_delete(user)
7477
# Update custom_attributes for a user
7578
user.custom_attributes["average_monthly_spend"] = 1234.56
7679
intercom.users.save(user)
@@ -135,7 +138,7 @@ intercom.companies.all.map {|company| company.name }
135138
# Get a list of users in a company by Intercom Company ID
136139
intercom.companies.users_by_intercom_company_id(company.id)
137140
# Get a list of users in a company by external company_id
138-
intercom.companies.users_by_company_id(company.company_id)
141+
intercom.companies.users_by_company_id(company.company_id)
139142
# Get a large list of companies using scroll
140143
intercom.companies.scroll.each { |comp| puts comp.name}
141144
# Please see users scroll for more details of how to use scroll
@@ -198,7 +201,7 @@ intercom.conversations.find_all(email: '[email protected]', type: 'user', unread:
198201
intercom.conversations.find_all(email: '[email protected]', type: 'user', unread: true).each {|convo| ... }
199202
# Iterate over all conversations for a user with their Intercom user ID
200203
intercom.conversations.find_all(intercom_user_id: '536e564f316c83104c000020', type: 'user').each {|convo| ... }
201-
# Iterate over all conversations for a lead
204+
# Iterate over all conversations for a lead
202205
# NOTE: to iterate over a lead's conversations you MUST use their Intercom User ID and type User
203206
intercom.conversations.find_all(intercom_user_id: lead.id, type: 'user').each {|convo| ... }
204207

@@ -228,7 +231,7 @@ intercom.conversations.open(id: conversation.id, admin_id: '123')
228231
intercom.conversations.close(id: conversation.id, admin_id: '123')
229232

230233
# Assign
231-
# Note: Conversations can be assigned to teams. However, the entity that performs the operation of assigning the conversation has to be an existing teammate.
234+
# Note: Conversations can be assigned to teams. However, the entity that performs the operation of assigning the conversation has to be an existing teammate.
232235
# You can use `intercom.admins.all.each {|a| puts a.inspect if a.type == 'admin' }` to list all of your teammates.
233236
intercom.conversations.assign(id: conversation.id, admin_id: '123', assignee_id: '124')
234237

@@ -417,8 +420,8 @@ contact = intercom.contacts.find(id: "536e564f316c83104c000020")
417420
intercom.contacts.convert(contact, Intercom::User.new(email: email))
418421
# Using find with email will not work here. See https://github.com/intercom/intercom-ruby/issues/419 for more information
419422

420-
# Delete a contact
421-
intercom.contacts.delete(contact)
423+
# archive a contact
424+
intercom.contacts.archive(contact)
422425

423426
# Get a large list of contacts using scroll
424427
intercom.contacts.scroll.each { |lead| puts lead.id}
Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,12 +2,14 @@
22

33
module Intercom
44
module ApiOperations
5-
module Delete
6-
def delete(object)
5+
module Archive
6+
def archive(object)
77
collection_name = Utils.resource_class_to_collection_name(collection_class)
88
@client.delete("/#{collection_name}/#{object.id}", {})
99
object
1010
end
11+
12+
alias_method 'delete', 'archive'
1113
end
1214
end
1315
end

lib/intercom/service/contact.rb

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
require 'intercom/api_operations/save'
77
require 'intercom/api_operations/scroll'
88
require 'intercom/api_operations/convert'
9-
require 'intercom/api_operations/delete'
9+
require 'intercom/api_operations/archive'
1010
require 'intercom/api_operations/request_hard_delete'
1111

1212
module Intercom
@@ -19,7 +19,7 @@ class Contact < BaseService
1919
include ApiOperations::Save
2020
include ApiOperations::Scroll
2121
include ApiOperations::Convert
22-
include ApiOperations::Delete
22+
include ApiOperations::Archive
2323
include ApiOperations::RequestHardDelete
2424

2525
def collection_class

lib/intercom/service/subscription.rb

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
require 'intercom/api_operations/find_all'
33
require 'intercom/api_operations/find'
44
require 'intercom/api_operations/save'
5-
require 'intercom/api_operations/delete'
5+
require 'intercom/api_operations/archive'
66

77
module Intercom
88
module Service
@@ -11,7 +11,7 @@ class Subscription < BaseService
1111
include ApiOperations::Find
1212
include ApiOperations::FindAll
1313
include ApiOperations::Save
14-
include ApiOperations::Delete
14+
include ApiOperations::Archive
1515

1616
def collection_class
1717
Intercom::Subscription

lib/intercom/service/tag.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ class Tag < BaseService
99
include ApiOperations::Save
1010
include ApiOperations::List
1111
include ApiOperations::FindAll
12-
include ApiOperations::Delete
12+
include ApiOperations::Archive
1313

1414
def collection_class
1515
Intercom::Tag

lib/intercom/service/user.rb

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
require 'intercom/api_operations/find'
66
require 'intercom/api_operations/find_all'
77
require 'intercom/api_operations/save'
8-
require 'intercom/api_operations/delete'
8+
require 'intercom/api_operations/archive'
99
require 'intercom/api_operations/bulk/submit'
1010
require 'intercom/api_operations/request_hard_delete'
1111
require 'intercom/extended_api_operations/tags'
@@ -20,7 +20,7 @@ class User < BaseService
2020
include ApiOperations::Find
2121
include ApiOperations::FindAll
2222
include ApiOperations::Save
23-
include ApiOperations::Delete
23+
include ApiOperations::Archive
2424
include ApiOperations::RequestHardDelete
2525
include ApiOperations::Bulk::Submit
2626
include ExtendedApiOperations::Tags

lib/intercom/service/visitor.rb

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
require 'intercom/api_operations/find_all'
66
require 'intercom/api_operations/save'
77
require 'intercom/api_operations/convert'
8-
require 'intercom/api_operations/delete'
8+
require 'intercom/api_operations/archive'
99

1010
module Intercom
1111
module Service
@@ -16,7 +16,7 @@ class Visitor < BaseService
1616
include ApiOperations::FindAll
1717
include ApiOperations::Save
1818
include ApiOperations::Convert
19-
include ApiOperations::Delete
19+
include ApiOperations::Archive
2020

2121
def collection_class
2222
Intercom::Visitor

spec/unit/intercom/user_spec.rb

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -218,11 +218,17 @@
218218
client.users.save(user)
219219
end
220220

221-
it "deletes a user" do
221+
it "archives a user" do
222222
user = Intercom::User.new("id" => "1")
223223
client.expects(:delete).with("/users/1", {}).returns(user)
224-
client.users.delete(user)
224+
client.users.archive(user)
225225
end
226+
it "has an alias to archive a user" do
227+
user = Intercom::User.new("id" => "1")
228+
client.expects(:delete).with("/users/1", {}).returns(user)
229+
client.users.delete(user)
230+
end
231+
226232

227233
it "sends a request for a hard deletion" do
228234
user = Intercom::User.new("id" => "1")

0 commit comments

Comments
 (0)