aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMatias Linares <matiaslina@gmail.com>2021-03-28 19:51:16 -0300
committerMatias Linares <matiaslina@gmail.com>2021-03-28 19:51:16 -0300
commite57b75a19a8f4a02bf93e99ac9dbf3c06575b219 (patch)
treee7322f6a0e731e77aaa6b7958454fb43b3455c13
parentf3f846be62f3715ad2a716043c8e92806c2472fa (diff)
downloadperl6-matrix-client-e57b75a19a8f4a02bf93e99ac9dbf3c06575b219.tar.gz
Add typing api support
-rw-r--r--docs/Matrix/Client/Room.rakudoc9
-rw-r--r--lib/Matrix/Client/Room.rakumod10
-rw-r--r--t/30-room.t1
3 files changed, 19 insertions, 1 deletions
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> = $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<test>, :id<!something>);
can-ok $room, 'read-marker';
+can-ok $room, 'typing';
# Integrations tests;