Skip to content

Commit a1e3a38

Browse files
committed
Merge pull request #8 from cakejelly/delete-messages
Adds support for deleting messages
2 parents 471d262 + 83c9f70 commit a1e3a38

File tree

5 files changed

+211
-20
lines changed

5 files changed

+211
-20
lines changed

README.md

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -180,6 +180,14 @@ messages = conv.messages.find("message_id")
180180
# => #<Layer::Resources::Message:0x007fdb18b44bf0 @attributes={...}>
181181
```
182182

183+
#### Deleting A Message
184+
185+
```ruby
186+
conv = platform.conversations.find("conversation_id")
187+
conv.messages.find("message_id").destroy
188+
# => nil
189+
```
190+
183191
#### Sending Announcements ####
184192

185193
```ruby

lib/layer/platform/client.rb

Lines changed: 0 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -13,26 +13,6 @@ def client
1313
@http_client ||= Layer::HttpClient.new(@app_id, @api_token)
1414
end
1515

16-
def get(url, *args)
17-
client.get(url, *args)
18-
end
19-
20-
def post(url, *args)
21-
client.post(url, *args)
22-
end
23-
24-
def put(url, *args)
25-
client.put(url, *args)
26-
end
27-
28-
def patch(url, *args)
29-
client.patch(url, *args)
30-
end
31-
32-
def delete(url)
33-
client.delete(url)
34-
end
35-
3616
def strip_layer_prefix(string)
3717
string.split("/").last if string
3818
end

lib/layer/resources/message.rb

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,17 @@
11
module Layer
22
module Resources
33
class Message < Layer::Resource
4+
def destroy
5+
client.delete(delete_url)
6+
end
7+
8+
private
9+
10+
def delete_url
11+
conversation_url = conversation["id"].split("layer:///").last
12+
13+
"#{conversation_url}/messages/#{uuid}"
14+
end
415
end
516
end
617
end

spec/cassettes/message_delete.yml

Lines changed: 160 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

spec/layer/resources/message_spec.rb

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -100,4 +100,36 @@
100100
end
101101
end
102102
end
103+
104+
describe "#destroy" do
105+
it "should delete message if message exists" do
106+
VCR.use_cassette("message_delete") do
107+
conv = client.conversations.create(conversation_params)
108+
message = conv.messages.create(message_params)
109+
110+
message.destroy
111+
112+
expect {
113+
conv.messages.find(message.uuid)
114+
}.to raise_error(Layer::Errors::NotFound)
115+
end
116+
end
117+
end
118+
119+
describe "#delete_url" do
120+
it "should return correct URL needed for deletion" do
121+
attributes = {
122+
"id"=>"layer:///messages/779fe2ec-8c1a-4b7c-993c-22df0465af1c",
123+
"conversation" => {
124+
"id" => "layer:///conversations/b127ccbe-5f95-4d6a-9c01-c1e98e147f4f"
125+
}
126+
}
127+
128+
message = described_class.new(attributes, nil)
129+
delete_url = message.send(:delete_url)
130+
expected_url = "conversations/b127ccbe-5f95-4d6a-9c01-c1e98e147f4f/messages/779fe2ec-8c1a-4b7c-993c-22df0465af1c"
131+
132+
expect(delete_url).to eq(expected_url)
133+
end
134+
end
103135
end

0 commit comments

Comments
 (0)