Webservice-Judobase/lib/Webservice/Judobase/Contests.pm
use strict;
use warnings;
package Webservice::Judobase::Contests;
$Webservice::Judobase::Contests::VERSION = '0.10';
# VERSION
use Moo;
use HTTP::Request;
use JSON::Tiny 'decode_json';
use LWP::UserAgent;
use namespace::clean;
has 'ua' => (
is => 'ro',
required => 1,
);
has 'url' => (
is => 'ro',
required => 1,
);
sub competition {
my ( $self, %args ) = @_;
return { error => 'id parameter is required' }
unless defined $args{id};
my $url
= $self->url
. '?params[action]=contest.find'
. '¶ms[id_weight]=0'
. '¶ms[order_by]=cnum'
. '¶ms[limit]=9999'
. '¶ms[id_competition]='
. $args{id};
my $request = HTTP::Request->new( GET => $url );
my $response = $self->ua->request($request);
return decode_json( $response->content )->{contests}
if $response->code == 200;
return { error => 'Error retreiving competitor info' };
}
sub contest {
my ( $self, %args ) = @_;
return { error => 'id parameter is required' }
unless defined $args{id};
# https://data.ijf.org/api/get_json?access_token=¶ms[action]=contest.find¶ms[__ust]=¶ms[contest_code]=wc_sen2019_m_0060_0010¶ms[part]=info,score_list,media,events
my $url
= $self->url
. '?params[action]=contest.find'
. '¶ms[part]=info,score_list,media,events'
. '¶ms[contest_code]='
. $args{id};
my $request = HTTP::Request->new( GET => $url );
my $response = $self->ua->request($request);
return decode_json( $response->content )->{contests}
if $response->code == 200;
return { error => 'Error retreiving contest info' };
}
1;