diff options
Diffstat (limited to 'lib')
-rw-r--r-- | lib/Matrix/Client.rakumod | 40 | ||||
-rw-r--r-- | lib/Matrix/Client/Room.rakumod | 6 |
2 files changed, 20 insertions, 26 deletions
diff --git a/lib/Matrix/Client.rakumod b/lib/Matrix/Client.rakumod index 01babe5..0c801d6 100644 --- a/lib/Matrix/Client.rakumod +++ b/lib/Matrix/Client.rakumod @@ -199,6 +199,15 @@ multi method sync(:$since = "") { # Rooms +#| Helper method to get a Matrix::Client::Room instance +method room(Str $room-id --> Matrix::Client::Room) { + Matrix::Client::Room.new( + id => $room-id, + access-token => self.access-token, + home-server => self.home-server + ) +} + #| POST - /_matrix/client/r0/createRoom method create-room( Bool :$public = False, @@ -216,11 +225,7 @@ method create-room( my $res = from-json($.post('/createRoom', |%params).content); - Matrix::Client::Room.new( - id => $res<room_id>, - access-token => self.access-token, - home-server => self.home-server - ) + $.room($res<room_id>) } #| POST - /_matrix/client/r0/join/{roomIdOrAlias} @@ -230,46 +235,35 @@ method join-room($room-id!) { #| POST - /_matrix/client/r0/rooms/{roomId}/ban method ban(Str $room-id, Str $user-id, $reason = "") { - $.post( - "/rooms/$room-id/ban", - :$user-id, - :$reason - ); + $.room($room-id).ban($user-id, :$reason) } #| POST - /_matrix/client/r0/rooms/{roomId}/unban method unban(Str $room-id, Str $user-id) { - $.post( - "/rooms/$room-id/unban", - :$user-id - ); + $.room($room-id).unban($user-id) } #| POST - /_matrix/client/r0/rooms/{roomId}/invite method invite(Str $room-id, Str $user-id) { - $.post( - "/rooms/$room-id/invite", - :$user-id - ) + $.room($room-id).invite($user-id) } #| POST - /_matrix/client/r0/rooms/{roomId}/forget method forget(Str $room-id) { - $.post("/rooms/$room-id/forget") + $.room($room-id).forget() } #| POST - /_matrix/client/r0/rooms/{roomId}/kick method kick(Str $room-id, Str $user-id, $reason = "") { - $.post( - "/rooms/$room-id/kick", - :$user-id, + $.room($room-id).kick( + $user-id, :$reason ); } #| POST - /_matrix/client/r0/rooms/{roomId}/leave method leave-room($room-id) { - $.post("/rooms/$room-id/leave"); + $.room($room-id).leave } #| GET - /_matrix/client/r0/joined_rooms diff --git a/lib/Matrix/Client/Room.rakumod b/lib/Matrix/Client/Room.rakumod index 1a6908f..8b86108 100644 --- a/lib/Matrix/Client/Room.rakumod +++ b/lib/Matrix/Client/Room.rakumod @@ -191,19 +191,19 @@ method forget { #| POST - /_matrix/client/r0/rooms/{roomId}/kick method kick(Str $user-id, Str $reason = "") { - $.post('/kick', :$user-id, :$reason) + $.post('/kick', :user_id($user-id), :$reason) } ## Banning users #| POST - /_matrix/client/r0/rooms/{roomId}/ban method ban(Str $user-id, $reason = "") { - $.post('/ban', :$user-id, :$reason) + $.post('/ban', :user_id($user-id), :$reason) } #| POST - /_matrix/client/r0/rooms/{roomId}/unban method unban(Str $user-id) { - $.post('/unban', :$user-id) + $.post('/unban', :user_id($user-id)) } method Str(--> Str) { |