Skip to content
This repository was archived by the owner on Aug 18, 2020. It is now read-only.

Commit acaa6e7

Browse files
authored
Merge pull request #33 from pusher/user-supplied-room-ids
User supplied room ids
2 parents d3eacc5 + 6d5c984 commit acaa6e7

5 files changed

Lines changed: 50 additions & 28 deletions

File tree

CHANGELOG.md

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,19 @@ All notable changes to this project will be documented in this file.
44
The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/)
55
and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.html).
66

7-
## [Unreleased](https://github.com/pusher/chatkit-server-ruby/compare/1.4.0...HEAD)
7+
## [Unreleased](https://github.com/pusher/chatkit-server-ruby/compare/1.5.0...HEAD)
8+
9+
[1.5.0](https://github.com/pusher/chatkit-server-ruby/compare/1.4.0...1.5.0) - 2019-07-03
10+
11+
### Additions
12+
13+
- Support for user specified room IDs. Provide an `id` parameter to the
14+
`create_room` method.
15+
16+
### Changes
17+
18+
- The `delete_message` method now *requires* a room ID parameter, `room_id`, and
19+
the `id` parameter has been renamed to `message_id` to avoid ambiguity.
820

921
[1.4.0](https://github.com/pusher/chatkit-server-ruby/compare/1.3.0...1.4.0) - 2019-06-24
1022

Gemfile.lock

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
PATH
22
remote: .
33
specs:
4-
pusher-chatkit-server (1.3.0)
4+
pusher-chatkit-server (1.5.0)
55
pusher-platform (~> 0.11.2)
66

77
GEM
@@ -37,4 +37,4 @@ DEPENDENCIES
3737
rspec
3838

3939
BUNDLED WITH
40-
1.16.6
40+
2.0.1

chatkit.gemspec

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
Gem::Specification.new do |s|
22
s.name = 'pusher-chatkit-server'
3-
s.version = '1.4.0'
3+
s.version = '1.5.0'
44
s.licenses = ['MIT']
55
s.summary = 'Pusher Chatkit Ruby SDK'
66
s.authors = ['Pusher']

lib/chatkit/client.rb

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@ def initialize(options)
4242
@api_instance = PusherPlatform::Instance.new(
4343
base_options.merge({
4444
service_name: 'chatkit',
45-
service_version: 'v4'
45+
service_version: 'v6'
4646
})
4747
)
4848

@@ -238,6 +238,7 @@ def create_room(options)
238238
private: options[:private] || false
239239
}
240240

241+
body[:id] = options[:id] unless options[:id].nil?
241242
body[:custom_data] = options[:custom_data] unless options[:custom_data].nil?
242243

243244
unless options[:user_ids].nil?
@@ -499,13 +500,17 @@ def send_message(options)
499500
end
500501

501502
def delete_message(options)
502-
if options[:id].nil?
503+
if options[:message_id].nil?
503504
raise Chatkit::MissingParameterError.new("You must provide the ID of the message you want to delete")
504505
end
505506

507+
if options[:room_id].nil?
508+
raise Chatkit::MissingParameterError.new("You must provide the ID of the room to which the message belongs")
509+
end
510+
506511
api_request({
507512
method: "DELETE",
508-
path: "/messages/#{options[:id]}",
513+
path: "/rooms/#{options[:room_id]}/messages/#{options[:message_id]}",
509514
jwt: generate_su_token[:token]
510515
})
511516
end

spec/client_spec.rb

Lines changed: 26 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -407,6 +407,20 @@
407407
expect(room_res[:body][:name]).to eq 'my room'
408408
expect(room_res[:body][:custom_data][:foo]).to eq 'bar'
409409
end
410+
411+
it "a room id, creator_id and name are provided" do
412+
user_id = SecureRandom.uuid
413+
res = @chatkit.create_user({ id: user_id, name: 'Ham' })
414+
expect(res[:status]).to eq 201
415+
416+
room_res = @chatkit.create_room({ id: "testroom", creator_id: user_id, name: 'my room' })
417+
expect(room_res[:status]).to eq 201
418+
expect(room_res[:body]).to have_key :id
419+
expect(room_res[:body][:id]).to eq 'testroom'
420+
expect(room_res[:body][:name]).to eq 'my room'
421+
expect(room_res[:body][:private]).to be false
422+
expect(room_res[:body][:member_user_ids]).to eq [user_id]
423+
end
410424
end
411425
end
412426

@@ -522,18 +536,12 @@
522536
room_res = @chatkit.create_room({ creator_id: user_id, name: 'my room' })
523537
expect(room_res[:status]).to eq 201
524538

525-
room_res_two = @chatkit.create_room({ creator_id: user_id, name: 'my room 2' })
526-
expect(room_res_two[:status]).to eq 201
527-
528539
get_rooms_res = @chatkit.get_rooms()
529540
expect(get_rooms_res[:status]).to eq 200
530-
expect(get_rooms_res[:body].count).to eq 2
541+
expect(get_rooms_res[:body].count).to eq 1
531542
expect(get_rooms_res[:body][0][:id]).to eq room_res[:body][:id]
532543
expect(get_rooms_res[:body][0][:name]).to eq 'my room'
533544
expect(get_rooms_res[:body][0][:private]).to be false
534-
expect(get_rooms_res[:body][1][:id]).to eq room_res_two[:body][:id]
535-
expect(get_rooms_res[:body][1][:name]).to eq 'my room 2'
536-
expect(get_rooms_res[:body][1][:private]).to be false
537545
end
538546

539547
it "include_private is specified" do
@@ -548,25 +556,16 @@
548556
})
549557
expect(room_res[:status]).to eq 201
550558

551-
room_res_two = @chatkit.create_room({ creator_id: user_id, name: 'my room 2' })
552-
expect(room_res_two[:status]).to eq 201
553-
554559
get_rooms_res = @chatkit.get_rooms()
555560
expect(get_rooms_res[:status]).to eq 200
556-
expect(get_rooms_res[:body].count).to eq 1
557-
expect(get_rooms_res[:body][0][:id]).to eq room_res_two[:body][:id]
558-
expect(get_rooms_res[:body][0][:name]).to eq 'my room 2'
559-
expect(get_rooms_res[:body][0][:private]).to be false
561+
expect(get_rooms_res[:body].count).to eq 0
560562

561563
get_rooms_with_private_res = @chatkit.get_rooms({ include_private: true })
562564
expect(get_rooms_with_private_res[:status]).to eq 200
563-
expect(get_rooms_with_private_res[:body].count).to eq 2
565+
expect(get_rooms_with_private_res[:body].count).to eq 1
564566
expect(get_rooms_with_private_res[:body][0][:id]).to eq room_res[:body][:id]
565567
expect(get_rooms_with_private_res[:body][0][:name]).to eq 'my room'
566568
expect(get_rooms_with_private_res[:body][0][:private]).to be true
567-
expect(get_rooms_with_private_res[:body][1][:id]).to eq room_res_two[:body][:id]
568-
expect(get_rooms_with_private_res[:body][1][:name]).to eq 'my room 2'
569-
expect(get_rooms_with_private_res[:body][1][:private]).to be false
570569
end
571570

572571
it "include_private and from_id are specified" do
@@ -584,15 +583,20 @@
584583
room_res_two = @chatkit.create_room({ creator_id: user_id, name: 'my room 2' })
585584
expect(room_res_two[:status]).to eq 201
586585

586+
if room_res[:body][:id] > room_res_two[:body][:id] then
587+
# swap the room responses to match the order we expect them to be returned in
588+
room_res_two, room_res = room_res, room_res_two
589+
end
590+
587591
get_rooms_res_one = @chatkit.get_rooms({
588592
include_private: true,
589593
from_id: room_res[:body][:id]
590594
})
591595
expect(get_rooms_res_one[:status]).to eq 200
592596
expect(get_rooms_res_one[:body].count).to eq 1
593597
expect(get_rooms_res_one[:body][0][:id]).to eq room_res_two[:body][:id]
594-
expect(get_rooms_res_one[:body][0][:name]).to eq 'my room 2'
595-
expect(get_rooms_res_one[:body][0][:private]).to be false
598+
expect(get_rooms_res_one[:body][0][:name]).to eq room_res_two[:body][:name]
599+
expect(get_rooms_res_one[:body][0][:private]).to eq room_res_two[:body][:private]
596600

597601
get_rooms_res_two = @chatkit.get_rooms({
598602
include_private: true,
@@ -1262,7 +1266,8 @@
12621266
expect(send_message_res[:status]).to eq 201
12631267

12641268
delete_messages_res = @chatkit.delete_message({
1265-
id: send_message_res[:body][:message_id]
1269+
message_id: send_message_res[:body][:message_id],
1270+
room_id: room_res[:body][:id]
12661271
})
12671272
expect(delete_messages_res[:status]).to eq 204
12681273
expect(delete_messages_res[:body]).to be_nil

0 commit comments

Comments
 (0)