Artifactory-Client
view release on metacpan or search on metacpan
lib/Artifactory/Client.pm view on Meta::CPAN
Deletes a previously created bundle from the system.
=cut
sub delete_bundle {
my ( $self, $bundle ) = @_;
my $url = $self->_api_url() . '/support/bundles/' . $bundle;
return $self->delete( $url, "Content-Type" => 'application/json', );
}
sub _build_ua {
my $self = shift;
return LWP::UserAgent->new( agent => 'perl-artifactory-client/' . $VERSION, );
}
sub _build_json {
my ($self) = @_;
return JSON::MaybeXS->new( utf8 => 1 );
}
sub _request {
my ( $self, $method, @args ) = @_;
return $self->ua->$method(@args);
}
sub _get_build {
my ( $self, $path ) = @_;
my $url = $self->_api_url() . "/build/$path";
return $self->get($url);
}
sub _attach_properties {
my ( $self, %args ) = @_;
my $properties = $args{properties};
my $matrix = $args{matrix};
my @strings;
for my $key ( keys %{$properties} ) {
push @strings, $self->_handle_prop_multivalue( $key, $properties->{$key}, $matrix );
}
return join( ";", @strings ) if $matrix;
return join( "|", @strings );
}
sub _handle_prop_multivalue {
my ( $self, $key, $values, $matrix ) = @_;
# need to handle matrix vs non-matrix situations.
if ($matrix) {
return $self->_handle_matrix_props( $key, $values );
}
return $self->_handle_non_matrix_props( $key, $values );
}
sub _handle_matrix_props {
my ( $self, $key, $values ) = @_;
# string looks like key=val;key=val2;key=val3;
my @strings;
for my $value ( @{$values} ) {
$value = '' if ( !defined $value );
#$value = uri_escape( $value );
push @strings, "$key=$value";
}
return join( ";", @strings );
}
sub _handle_non_matrix_props {
my ( $self, $key, $values ) = @_;
# string looks like key=val1,val2,val3|
my $str = "$key=";
my @value_holder;
for my $value ( @{$values} ) {
$value = '' if ( !defined $value );
$value = uri_escape($value);
push @value_holder, $value;
}
$str .= join( ",", @value_holder );
return $str;
}
sub _handle_item {
my ( $self, %args ) = @_;
my ( $from, $to, $dry, $suppress_layouts, $fail_fast, $method ) =
( $args{from}, $args{to}, $args{dry}, $args{suppress_layouts}, $args{fail_fast}, $args{method} );
my $url = $self->_api_url() . "/$method$from?to=$to";
$url .= "&dry=$dry" if ( defined $dry );
$url .= "&suppressLayouts=$suppress_layouts"
if ( defined $suppress_layouts );
$url .= "&failFast=$fail_fast" if ( defined $fail_fast );
return $self->post($url);
}
sub _handle_repository_replication_configuration {
my ( $self, $method, $payload ) = @_;
my $repository = $self->repository();
my $url = $self->_api_url() . "/replications/$repository";
return $self->$method(
$url,
'Content-Type' => 'application/json',
content => $self->_json->encode($payload),
) if ($payload);
return $self->$method($url);
}
sub _handle_search {
my ( $self, $api, %args ) = @_;
my $name = $args{name};
my $repos = $args{repos};
my $result_detail = $args{result_detail};
my $url = $self->_api_url() . "/search/$api?name=$name";
if ( ref($repos) eq 'ARRAY' ) {
$url .= "&repos=" . join( ",", @{$repos} );
}
my %headers;
if ( ref($result_detail) eq 'ARRAY' ) {
$headers{'X-Result-Detail'} = join( ',', @{$result_detail} );
}
return $self->get( $url, %headers );
}
sub _handle_search_props {
( run in 1.746 second using v1.01-cache-2.11-cpan-98e64b0badf )