API-Medium
view release on metacpan or search on metacpan
# This file is generated by Dist::Zilla::Plugin::CPANFile v6.017
# Do not edit this file directly. To change prereqs, edit the `dist.ini` file.
requires "HTTP::Tiny" => "0";
requires "JSON::MaybeXS" => "0";
requires "Log::Any" => "0";
requires "Module::Runtime" => "0";
requires "Moose" => "0";
on 'build' => sub {
requires "Module::Build" => "0.28";
};
on 'test' => sub {
requires "File::Spec" => "0";
requires "File::Temp" => "0";
requires "IO::Handle" => "0";
requires "IPC::Open3" => "0";
requires "Test::More" => "0";
requires "perl" => "5.006";
};
on 'configure' => sub {
requires "Module::Build" => "0.28";
};
lib/API/Medium.pm view on Meta::CPAN
isa => 'Str',
is => 'ro',
);
has '_client' => (
isa => 'HTTP::Tiny',
is => 'ro',
lazy_build => 1,
);
sub _build__client {
my $self = shift;
return HTTP::Tiny->new(
agent => join( '/', __PACKAGE__, $VERSION ),
default_headers => {
'Authorization' => 'Bearer ' . $self->access_token,
'Accept' => 'application/json',
'Content-Type' => 'application/json',
}
);
}
sub get_current_user {
my $self = shift;
my $res = $self->_request( 'GET', 'me' );
return $res->{data};
}
sub create_post {
my ( $self, $user_id, $post ) = @_;
$post->{publishStatus} ||= 'draft';
my $res = $self->_request( 'POST', 'users/' . $user_id . '/posts', $post );
return $res->{data}{url};
}
sub create_publication_post {
my ( $self, $publication_id, $post ) = @_;
$post->{publishStatus} ||= 'draft';
my $res =
$self->_request( 'POST', 'publications/' . $publication_id . '/posts',
$post );
return $res->{data}{url};
}
sub _request {
my ( $self, $method, $endpoint, $data ) = @_;
my $url = join( '/', $self->server, $endpoint );
my $res;
if ($data) {
$res = $self->_client->request( $method, $url,
{ content => encode_json($data) } );
}
else {
( run in 0.276 second using v1.01-cache-2.11-cpan-4d50c553e7e )