AnyEvent-WebService-ImKayac
view release on metacpan or search on metacpan
# NAME
AnyEvent::WebService::ImKayac - connection wrapper for im.kayac.com
# SYNOPSIS
use AnyEvent::WebService::ImKayac;
my $im = AnyEvent::WebService::ImKayac->new(
type => 'password',
user => '...',
password => '...'
);
$im->send( message => 'Hello! test send!!', cb => sub {
my ($hdr, $json, $reason) = @_;
if ( $json ) {
if ( $json->{result} eq "posted" ) {
}
else {
warn $json->{error};
else {
warn $reason;
}
});
## METHODS
### new
You must pass `type` and `user` parameter to new method. And type should be
secret, password or none.
- type is secret
You should pass secret\_key parameter.
- type is password
You should pass password parameter.
- type is none
You dond need to pass other parameter.
### $imkayac->send( message => '...', cb => sub {} );
Send with message and cb parameters. cb is called when message have been sent.
# AUTHORS
lib/AnyEvent/WebService/ImKayac.pm view on Meta::CPAN
=head1 NAME
AnyEvent::WebService::ImKayac - connection wrapper for im.kayac.com
=head1 SYNOPSIS
use AnyEvent::WebService::ImKayac;
my $im = AnyEvent::WebService::ImKayac->new(
type => 'password',
user => '...',
password => '...'
);
$im->send( message => 'Hello! test send!!', cb => sub {
my ($hdr, $json, $reason) = @_;
if ( $json ) {
if ( $json->{result} eq "posted" ) {
}
else {
warn $json->{error};
lib/AnyEvent/WebService/ImKayac.pm view on Meta::CPAN
else {
warn $reason;
}
});
=head2 METHODS
=head3 new
You must pass C<< type >> and C<< user >> parameter to new method. And type should be
secret, password or none.
=over 3
=item type is secret
You should pass secret_key parameter.
=item type is password
You should pass password parameter.
=item type is none
You dond need to pass other parameter.
=back
=cut
sub new {
my $pkg = shift;
my %args = ($_[1]) ? @_ : %{$_[1]};
croak "missing require parameter 'user'" unless defined $args{user};
croak "missing require parameter 'type'" unless defined $args{type};
$args{type} = 'none' if $args{type} !~ /^(none|password|secret)$/;
if ($args{type} eq 'password' && ! defined $args{password}) {
croak "require password";
}
if ($args{type} eq 'secret' && ! defined $args{secret_key}) {
croak "require secret_key";
}
bless \%args, $pkg;
}
lib/AnyEvent/WebService/ImKayac.pm view on Meta::CPAN
}
};
}
sub _param_none {
my ($self, %args) = @_;
%args;
}
sub _param_password {
my ($self, %args) = @_;
(
%args,
password => $self->{password},
);
}
sub _param_secret {
my ($self, %args) = @_;
my $skey = $self->{secret_key};
(
%args,
t/01_basic.t view on Meta::CPAN
eval { anyevent::webservice::imkayac->new( type => "none" ) };
ok($@, "require user and type");
}
{
my $im = eval { AnyEvent::WebService::ImKayac->new( user => "hoge", type => "none") };
isa_ok($im, "AnyEvent::WebService::ImKayac", "if type is none, not required other parameter.");
}
{
eval { AnyEvent::WebService::ImKayac->new( user => "hoge", type => "password") };
ok($@, "if type is password, require password parameter ");
my $im = eval { AnyEvent::WebService::ImKayac->new( user => "hoge", type => "password", password => "hoge") };
isa_ok($im, "AnyEvent::WebService::ImKayac", "if type is password, require password parameter ");
}
{
eval { AnyEvent::WebService::ImKayac->new( user => "hoge", type => "secret") };
ok($@, "if type is secret, require secret_key parameter ");
my $im = eval { AnyEvent::WebService::ImKayac->new( user => "hoge", type => "secret", secret_key => "hoge") };
isa_ok($im, "AnyEvent::WebService::ImKayac", "if type is secret, require secret_key parameter ");
}
t/02_send.t view on Meta::CPAN
message => "m",
cb => sub {
my ($hdr, $json, $reason) = @_;
is $json->{result}, "posted";
is $reason, "OK";
$cv->send;
},
);
},
},
#password type
{
response => sub {
my $req = shift;
is $req->param('password'), 'dameleon';
[200, [" Content-Type" => "application/json" ], [ encode_json({ result => "posted" }) ] ]
},
client => sub {
my $cv = shift;
AnyEvent::WebService::ImKayac->new(
user => "hoge",
type => "password",
password => "dameleon",
)->send(
message => "m",
cb => sub {
my ($hdr, $json, $reason) = @_;
is $json->{result}, "posted";
is $reason, "OK";
$cv->send;
},
);
},
( run in 0.945 second using v1.01-cache-2.11-cpan-49f99fa48dc )