The London Perl and Raku Workshop takes place on 26th Oct 2024. If your company depends on Perl, please consider sponsoring and/or attending.

NAME

WebService::Gitter - An interface to Gitter REST API via Perl 5.

VERSION

version 2.1.0

SYNOPSIS

use strict;
use warnings;
use WebService::Gitter;
use v5.10;

my $git = WebService::Gitter->new(api_key => 'secret');

# Get current authenticated user.
$git->get_me;

# List groups belonging to the authenticated user.
$git->list_groups;

# List all rooms belonging to the group/community.
$git->rooms_under_group($group_id);

# List all rooms belonging to the searched user.
$git->rooms(q => $query);

# List room data via URI.
$git->room_from_uri(uri => $room_uri);

# Join a room.
$git->join_room($room_id, $user_id);

# Leave/remove user from a room.
$git->remove_user_from_room($room_id, $user_id);

# Update room.
update_room($room_id, topic => $topic, noindex => $noindex, tags => $tags);

# Delete room.
$git->delete_room($room_id);

# List all users in a room.
$git->room_users($room_id, q => $query, skip => $skip_n, limit => $limit_n);

# List all messages in a room.
$git->list_messages($room_id, skip => $skip_n, beforeId => $beforeId,
afterId => $afterId, aroundId => $aroundId, limit => $limit_n,
q => $query);

# Get single message in a room using its message ID.
$git->single_message($room_id, $message_id);

# Send message/text to a room.
$git->send_message($room_id, text => $text);

# Update message/text in a room.
$git->update_message($room_id, $message_id, text => $new_text);

NOTE

This module does not support Faye endpoint and streaming API..yet. Currently as of writing this, the Gitter's API is still in beta and likely to break backward compatibility in the future.

Methods

get_me

Description: Get current authenticated user.

Returns: Authenticated user data.

list_groups

Description: List joined groups by the authenticated user.

Returns: Authenticated user joined groups data.

rooms_under_group($group_id)

Description: List all rooms belonging to the group/community.

Parameter: REQUIRED$group_id - Group/community ID.

Returns: All rooms data belonging to the particular community.

rooms(q => $query)

Description: List all rooms belonging to the searched user.

Parameter: OPTIONAL$query - Search/query string.

Returns: All rooms data belonging to the user.

room_from_uri(uri => $room_uri)

Description: List room data via URI.

Parameter: REQUIRED$room_uri - Room URI.

Returns: Room from URI response message.

join_room($room_id, $user_id)

Description: Join a room.

Parameter: REQUIRED$room_id - Room ID.

Parameter: REQUIRED$user_id - User ID.

Returns: Join room message response.

remove_user_from_room($room_id, $user_id)

Description: Remove a user from a room. This can be self-inflicted to leave the the room and remove room from your left menu.

Parameter: REQUIRED$room_id - Room ID.

Parameter: REQUIRED$user_id - User ID.

Returns: Remove user from a room response message.

update_room($room_id, topic => $topic, noindex => $noindex, tags => $tags)

Description: Update room.

Parameter: REQUIRED$room_id - Room ID.

Parameter: OPTIONAL$topic - Room topic.

Parameter: OPTIONAL$noindex - (false, true) Whether the room is indexed by search engines.

Parameter: OPTIONAL$tags - 'tag1, tag2, etc' Tags that define the room.

Returns: Update room response message.

delete_room($room_id)

Description: Delete room.

Parameter: REQUIRED$room_id - Room ID.

Returns: Delete room response message.

room_users($room_id, q => $query, skip => $skip_n, limit => $limit_n)

Description: List all users in a room.

Note: By default, it will skip 0 and return only 30 users data.

Parameter: REQUIRED$room_id - Room ID.

Parameter: OPTIONAL$query - User's search/query string.

Parameter: OPTIONAL$skip_n - Skip n users.

Parameter: OPTIONAL$limit_n - Set return limit.

Returns: All users data belonging to the room.

list_messages($room_id, skip => $skip_n, beforeId => $beforeId, afterId => $afterId, aroundId => $aroundId, limit => $limit_n, q => $query)

Description: List all messages in a room.

Note: By default, it will skip 0 and return only 30 users data.

Parameter: REQUIRED$room_id - Room ID.

Parameter: OPTIONAL$skip_n - Skip n messages (constrained to 5000 or less).

Parameter: OPTIONAL$beforeId - Get messages before beforeId.

Parameter: OPTIONAL$afterId - Get messages after afterId.

Parameter: OPTIONAL$aroundId - Get messages after aroundId.

Parameter: OPTIONAL$limit_n - Maximum number of messages to return (constrained to 100 or less).

Parameter: OPTIONAL$query - Search query.

Returns: List of messages in a room.

single_message($room_id, $message_id)

Description: Get single message in a room using its message ID.

Parameter: REQUIRED$room_id - Room ID.

Parameter: REQUIRED$message_id - Message ID.

Returns: Retrieve a single message using its ID.

send_message($room_id, text => $text)

Description: Send message/text to a room.

Parameter: REQUIRED$room_id - Room ID.

Parameter: REQUIRED$text - Text to send.

Returns: Retrieve send message response.

update_message($room_id, $message_id, text => $new_text)

Description: Update message/text in a room.

Parameter: REQUIRED$room_id - Room ID.

Paramater: REQUIRED$message_id - Message ID.

Parameter: REQUIRED$new_text - Text to replace old message.

Returns: Retrieve update message response.

SEE ALSO

Gitter API documentation

Function::Parameters

WebService::Client

AUTHOR

faraco <skelic3@gmail.com>

COPYRIGHT AND LICENSE

This software is Copyright (c) 2017-2018 by faraco.

This is free software, licensed under:

The MIT (X11) License