Catmandu-CA

 view release on metacpan or  search on metacpan

lib/Catmandu/CA/API/Login.pm  view on Meta::CPAN

    return $ua;
}

sub token {
    my ($self) = @_;
    my $url = sprintf('%s/service.php/auth/login', $self->url);
    my $request = GET $url;
    $request->authorization_basic($self->username, $self->password);
    my $response = $self->ua->request($request);
    if ($response->is_success) {
        my $content = decode_json($response->decoded_content);
        return $content->{'authToken'};
    } else {
        Catmandu::HTTPError->throw({
                code             => $response->code,
                message          => $response->status_line,
                url              => $response->request->uri,
                method           => $response->request->method,
                request_headers  => [],
                request_body     => $response->request->decoded_content,
                response_headers => [],
                response_body    => $response->decoded_content,
        });
        return undef;
    }
}

1;
__END__

lib/Catmandu/CA/API/Request.pm  view on Meta::CPAN


    my $url = sprintf($url_string,
        $self->url,
        $self->url_query,
        $query,
        $self->token,
        $self->lang
    );
    my $response = $self->ua->get($url);
    if ($response->is_success) {
        return decode_json($response->decoded_content);
    } elsif ($response->code == 404) {
        return {};
    } else {
        Catmandu::HTTPError->throw({
                code             => $response->code,
                message          => $response->status_line,
                url              => $response->request->uri,
                method           => $response->request->method,
                request_headers  => [],
                request_body     => $response->request->decoded_content,
                response_headers => [],
                response_body    => $response->decoded_content,
        });
        return {};
    }
}

sub put {
    my ($self, $data) = @_;
    my $url = sprintf('%s/%s&authToken=%s', $self->url, $self->url_query, $self->token);
    my $response = $self->ua->put($url, Content => $data, Content_type => 'application/json');

    if (!$response->is_success) {
        Catmandu::HTTPError->throw({
                code             => $response->code,
                message          => $response->status_line,
                url              => $response->request->uri,
                method           => $response->request->method,
                request_headers  => [],
                request_body     => $response->request->decoded_content,
                response_headers => [],
                response_body    => $response->decoded_content,
        });
        return 0;
    }

    return 1;
}

sub delete {
    my $self = shift;
    my $url = sprintf('%s/%s&authToken=%s', $self->url, $self->url_query, $self->token);
    my $response = $self->ua->delete($url);

    if (!$response->is_success) {
        Catmandu::HTTPError->throw({
                code             => $response->code,
                message          => $response->status_line,
                url              => $response->request->uri,
                method           => $response->request->method,
                request_headers  => [],
                request_body     => $response->request->decoded_content,
                response_headers => [],
                response_body    => $response->decoded_content,
        });
        return 0;
    }

    return 1;
}
1;
__END__



( run in 0.488 second using v1.01-cache-2.11-cpan-26ccb49234f )