Tatsumaki-Service-XMPP

 view release on metacpan or  search on metacpan

lib/Tatsumaki/Service/XMPP.pm  view on Meta::CPAN

            return unless $msg->any_body;

            # TODO refactor this
            my $req = POST "/_services/xmpp/chat", [ from => $msg->from, to => $acct->jid, body => $msg->body ];
            my $env = $req->to_psgi;
            $env->{'tatsumaki.xmpp'} = {
                client  => $client,
                account => $acct,
                message => $msg,
            };
            $env->{'psgi.streaming'} = 1;

            my $res = $self->application->($env);
            $res->(sub { my $res = shift }) if ref $res eq 'CODE';
        },
        contact_request_subscribe => sub {
            my($client, $acct, $roster, $contact) = @_;
            $contact->send_subscribed;

            my $req = POST "/_services/xmpp/subscribe", [ from => $contact->jid, to => $acct->jid ];
            my $env = $req->to_psgi;
            $env->{'tatsumaki.xmpp'} = {
                client  => $client,
                account => $acct,
                contact => $contact,
            };
            $env->{'psgi.streaming'} = 1;

            my $res = $self->application->($env);
            $res->(sub { my $res = shift }) if ref $res eq 'CODE';
        },
    );
    $xmpp;
}

sub start {
    my($self, $application) = @_;



( run in 0.453 second using v1.01-cache-2.11-cpan-fd5d4e115d8 )