NAME

Bot::Backbone::Service::Role::Chat - Chat services must implement this role

VERSION

version 0.161950

DESCRIPTION

A chat service is one that sends and receives messages to other entities.

See the following implementations:

ATTRIBUTES

chat_consumers

This is a list of Bot::Backbone::Service::Role::ChatConsumers that have registered to receive messages from this chat service. A chat consumer is registered using the register_chat_cnosumer method. A list_chat_consumers method is provided to list the registered consumers.

REQUIRED METHODS

send_message

# Send a direct message
$chat->send_message({
    to          => $to_username,
    text        => 'blah blah blah',
});

# Send a group message
$chat->send_message({
    group       => $to_group,
    text        => 'blah blah blah',
});

Sends a message to a group or individual using this chat service. This is used when the message is not being made as a direct reply to a message received from the chat service.

If both group and to are passed, the preference should be to send to the group.

This role also provides a wrapper around your chat's implementation of send_message, which will apply the current service's send policy to the message. The most restrictive send policy encountered at any point will win.

A send policy may be explicitly provided by setting the send_policy setting in the parameters to a Bot::Backbone::SendPolicy object. Missing this parameter will result in an error. The send_policy_result may also be set to reflect the most restrictive send policy result encountered so far.

METHODS

send_reply

$chat->send_reply($message, \%options);

Given a message generated by this chat service, this should send a reply to the origin of the message, whether that be a group or individual or other entity.

The second argument is a hash reference of options, which is used to modify the reply further. See "send_message" for additional options and be aware that individual chat implementations may provide more options in addition to those shown here.

resend_message

$chat->resend_message($message);

This should be called whenever a message is received from the chat service. This message willb e forwarded to all of the registered "chat_consumers".

AUTHOR

Andrew Sterling Hanenkamp <hanenkamp@cpan.org>

COPYRIGHT AND LICENSE

This software is copyright (c) 2016 by Qubling Software LLC.

This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.