Skip to content

Commit 55ef6c8

Browse files
Merge pull request #410 from intercom/ak/add-hard-delete-request
add ability to hard delete users
2 parents 5905676 + a412ea8 commit 55ef6c8

File tree

5 files changed

+28
-0
lines changed

5 files changed

+28
-0
lines changed
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
require 'intercom/utils'
2+
3+
module Intercom
4+
module ApiOperations
5+
module RequestHardDelete
6+
def request_hard_delete(object)
7+
@client.post("/user_delete_requests", {intercom_user_id: object.id})
8+
object
9+
end
10+
end
11+
end
12+
end

lib/intercom/service/contact.rb

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
require 'intercom/api_operations/scroll'
88
require 'intercom/api_operations/convert'
99
require 'intercom/api_operations/delete'
10+
require 'intercom/api_operations/request_hard_delete'
1011

1112
module Intercom
1213
module Service
@@ -19,6 +20,7 @@ class Contact < BaseService
1920
include ApiOperations::Scroll
2021
include ApiOperations::Convert
2122
include ApiOperations::Delete
23+
include ApiOperations::RequestHardDelete
2224

2325
def collection_class
2426
Intercom::Contact

lib/intercom/service/user.rb

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
require 'intercom/api_operations/save'
88
require 'intercom/api_operations/delete'
99
require 'intercom/api_operations/bulk/submit'
10+
require 'intercom/api_operations/request_hard_delete'
1011
require 'intercom/extended_api_operations/tags'
1112
require 'intercom/extended_api_operations/segments'
1213

@@ -20,6 +21,7 @@ class User < BaseService
2021
include ApiOperations::FindAll
2122
include ApiOperations::Save
2223
include ApiOperations::Delete
24+
include ApiOperations::RequestHardDelete
2325
include ApiOperations::Bulk::Submit
2426
include ExtendedApiOperations::Tags
2527
include ExtendedApiOperations::Segments

spec/unit/intercom/contact_spec.rb

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -50,4 +50,10 @@
5050
client.contacts.delete(contact)
5151
end
5252

53+
it "sends a request for a hard deletion" do
54+
contact = Intercom::Contact.new("id" => "1")
55+
client.expects(:post).with("/user_delete_requests", {intercom_user_id: "1"}).returns({id: contact.id})
56+
client.contacts.request_hard_delete(contact)
57+
end
58+
5359
end

spec/unit/intercom/user_spec.rb

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -224,6 +224,12 @@
224224
client.users.delete(user)
225225
end
226226

227+
it "sends a request for a hard deletion" do
228+
user = Intercom::User.new("id" => "1")
229+
client.expects(:post).with("/user_delete_requests", {intercom_user_id: "1"}).returns({id: user.id})
230+
client.users.request_hard_delete(user)
231+
end
232+
227233
it "can use client.users.create for convenience" do
228234
client.expects(:post).with("/users", {'custom_attributes' => {}, "email" => "[email protected]", "user_id" => "i-1224242"}).returns({"email" => "[email protected]", "user_id" => "i-1224242"})
229235
user = client.users.create("email" => "[email protected]", :user_id => "i-1224242")

0 commit comments

Comments
 (0)