From e57b75a19a8f4a02bf93e99ac9dbf3c06575b219 Mon Sep 17 00:00:00 2001 From: Matias Linares Date: Sun, 28 Mar 2021 19:51:16 -0300 Subject: Add typing api support --- docs/Matrix/Client/Room.rakudoc | 9 +++++++++ lib/Matrix/Client/Room.rakumod | 10 +++++++++- t/30-room.t | 1 + 3 files changed, 19 insertions(+), 1 deletion(-) diff --git a/docs/Matrix/Client/Room.rakudoc b/docs/Matrix/Client/Room.rakudoc index 7d4cdff..bd0f6fd 100644 --- a/docs/Matrix/Client/Room.rakudoc +++ b/docs/Matrix/Client/Room.rakudoc @@ -138,6 +138,15 @@ read receipt's location. The C<$fully-read> and C<$read> parameters are event ids where the markers will be placed. +=head2 typing + + method typing(Bool $typing, Str :$user-id!, Int :$timeout) + +Sends a typing event to the server telling that C<$user-id> is typing +or not (depending on C<$typing> argument). + +The C<$timeout> parameter is optional for this endpoint. + =head2 invite method invite(Str $user-id) diff --git a/lib/Matrix/Client/Room.rakumod b/lib/Matrix/Client/Room.rakumod index 34c73ae..1a6908f 100644 --- a/lib/Matrix/Client/Room.rakumod +++ b/lib/Matrix/Client/Room.rakumod @@ -153,7 +153,15 @@ method read-marker(Str:D $fully-read, Str $read?) { $.post('/read_markers', |%data); } -method typing() +#| PUT - /_matrix/client/r0/rooms/{roomId}/typing/{userId} +method typing(Bool $typing, Str :$user-id!, Int :$timeout) { + my %data = :$typing; + + %data = $timeout with $timeout; + $.put( + "/typing/{$user-id}", |%data + ); +} # Room membership! diff --git a/t/30-room.t b/t/30-room.t index b9f7cfd..7eb9dd7 100644 --- a/t/30-room.t +++ b/t/30-room.t @@ -7,6 +7,7 @@ use-ok 'Matrix::Client::Room'; my $room = Matrix::Client::Room.new(:home-server, :id); can-ok $room, 'read-marker'; +can-ok $room, 'typing'; # Integrations tests; -- cgit v1.2.3-70-g09d2