ELab-Client
view release on metacpan or search on metacpan
lib/ELab/Client.pm view on Meta::CPAN
my $self = shift;
my $id = shift;
my (%args) = validated_hash(
\@_,
category => { isa => 'Str', optional => 1 },
title => { isa => 'Str', optional => 1 },
date => { isa => 'Str', optional => 1 },
body => { isa => 'Str', optional => 1 },
bodyappend => { isa => 'Str', optional => 1 },
);
return decode_json $self->elab_post("experiments/$id", $self->buildQuery(%args));
}
sub post_item {
my $self = shift;
my $id = shift;
my (%args) = validated_hash(
\@_,
category => { isa => 'Str', optional => 1 },
title => { isa => 'Str', optional => 1 },
date => { isa => 'Str', optional => 1 },
body => { isa => 'Str', optional => 1 },
bodyappend => { isa => 'Str', optional => 1 },
);
return decode_json $self->elab_post("items/$id", $self->buildQuery(%args));
}
sub post_template {
my $self = shift;
my $id = shift;
my (%args) = validated_hash(
\@_,
title => { isa => 'Str', optional => 1 },
date => { isa => 'Str', optional => 1 },
body => { isa => 'Str', optional => 1 },
);
return decode_json $self->elab_post("templates/$id", $self->buildQuery(%args));
}
sub upload_to_experiment {
my $self = shift;
my $id = shift;
my (%args) = validated_hash(
\@_,
file => { isa => 'Str' },
);
my $request = HTTP::Request::Common::POST(
$self->host().$self->endpoint()."experiments/$id",
{
file => [ $args{file} ]
},
Content_Type => 'form-data',
Authorization => $self->token(),
);
return decode_json $self->getUseragent()->request($request)->decoded_content();
}
sub upload_to_item {
my $self = shift;
my $id = shift;
my (%args) = validated_hash(
\@_,
file => { isa => 'Str' },
);
my $request = HTTP::Request::Common::POST(
$self->host().$self->endpoint()."items/$id",
{
file => [ $args{file} ]
},
Content_Type => 'form-data',
Authorization => $self->token(),
);
return decode_json $self->getUseragent()->request($request)->decoded_content();
}
sub create_event {
my $self = shift;
my $id = shift;
my (%args) = validated_hash(
\@_,
start => { isa => 'Str' },
end => { isa => 'Str' },
title => { isa => 'Str' },
);
return decode_json $self->elab_post("events/$id", $self->buildQuery(%args));
}
sub destroy_event {
my $self = shift;
my $id = shift;
return decode_json $self->elab_delete("events/$id");
}
sub get_all_events {
my $self = shift;
return decode_json $self->elab_get("events/");
}
sub get_event {
my $self = shift;
my $id = shift;
return decode_json $self->elab_get("events/$id");
}
sub BUILD {
my $self = shift;
my $args = shift;
$self->addHeader('Authorization', $self->token());
}
sub elab_get {
my $self = shift;
my $url = shift;
my $result = $self->GET($self->endpoint().$url);
return undef unless $result->responseCode() eq '200';
return $result->responseContent();
}
sub elab_delete {
( run in 0.747 second using v1.01-cache-2.11-cpan-2398b32b56e )