package Catmandu::Store::Datahub::API;
use strict;
use warnings;
use Catmandu;
use Moo;
use JSON;
use LWP::UserAgent;
has url => (is => 'ro', required => 1);
has client_id => (is =>
($response->is_success) {
return decode_json($response->decoded_content);
} elsif ($response->code == 401) {
my $error = decode_json($response->decoded_content);
if ($error
} elsif ($response->code == 404) {
return {};
} else {
my $message = decode_json($response->decoded_content);
Catmandu::HTTPError->throw({
code =>
package Catmandu::Store::Datahub::OAuth;
use LWP::UserAgent;
use JSON;
use Moo;
use Catmandu::Sane;
has url => (is => 'ro', required => 1);
has username => (is => 'ro', required => 1);
has passwor
_success) {
my $token_raw = $response->decoded_content;
my $token_parsed = decode_json($token_raw);
return $token_parsed->{'access_token'};
} else {
Catmandu::HTTPE
_package);
use Time::HiRes qw(usleep);
use Catmandu::Sane;
use Catmandu::Store::Datahub::API;
use JSON;
with 'Catmandu::Bag';
has api => (is => 'lazy');
sub _build_api {
my $self = shift;
m