Skip to content
Snippets Groups Projects
Commit 37d62ee1 authored by Gerhard Gonter's avatar Gerhard Gonter :speech_balloon:
Browse files

additional functionality for ut1.pl

parent 4a0a8096
Branches
No related tags found
No related merge requests found
......@@ -52,7 +52,7 @@ sub register_doi
unless ($code1 =~ m#^20[01]#)
{
print STDERR "ATTN: register_doi POST metadata returned code1=[$code1] res1=[$res1]\n";
return undef;
return (0, $res1, undef);
}
my $doi_reg= <<"EOX";
......@@ -66,10 +66,10 @@ EOX
unless ($code2 =~ m#^20[01]#)
{
print STDERR "ATTN: register_doi POST doi returned code2=[$code2] res2=[$res2]\n";
return undef;
return (0, $res1, $res2);
}
1;
(1, $res1, $res2);
}
sub datacite_request
......
......@@ -20,45 +20,65 @@ sub getContainerPublicMetadata
my $self= shift;
my $utheses_id= shift;
my ($code1, $res1)= $self->utheses_request('GET', 'container/get/public', $utheses_id);
print __LINE__, " code1=[$code1] res1=[$res1]\n";
my $info;
if ($code1 =~ m#^2#)
{
eval
{
$info= from_json($res1);
};
if ($@)
{
die $@;
}
}
my ($code1, $res1, $info)= $self->utheses_request('GET', 'container/get/public', $utheses_id);
print __LINE__, " code1=[$code1] res1=[$res1] info=[$info]\n";
# TODO: Error handling!
$info;
}
sub getPendingDoisCreateRequest
{
my $self= shift;
my ($code1, $res1, $info)= $self->utheses_request('GET', 'doi/get/createRequest', undef, );
print __LINE__, " code1=[$code1] res1=[$res1] info=[$info]\n";
# TODO: Error handling!
(wantarray) ? ($code1, $res1, $info) : $info;
}
sub utheses_request
{
my $self= shift;
my $method= shift;
my $what= shift;
my $id= shift;
my $par= shift;
my ($api_url)= map { $self->{config}->{$_} } qw(api_url);
my ($api_url, $headers)= map { $self->{config}->{$_} } qw(api_url headers);
my $req_url= join ('/', $api_url, $what, $id);
my $req_url= join ('/', $api_url, $what, $par);
print __LINE__, " req_url=[$req_url]\n";
my $req = HTTP::Request->new( $method => $req_url );
if (defined ($headers))
{
foreach my $h (@$headers)
{
$req->header(@$h);
}
}
my $ua= LWP::UserAgent->new;
my $res= $ua->request($req);
# print __LINE__, " res: ", main::Dumper($res);
my $txt= decode("utf8", $res->content());
return ($res->code(), $txt);
my $code= $res->code();
my $info;
if ($code =~ m#^2#)
{
eval
{
$info= from_json($txt);
};
if ($@)
{
die $@; # TODO: this should be handled mor gracefully!
}
}
return ($code, $txt, $info);
}
1;
......
This diff is collapsed.
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment