# ABSTRACT: interface to snapshot.debian.org
use Any::Moose;
use Debian::Snapshot::Package;
use JSON ();
use LWP::UserAgent;
has 'user_agent' => (
is => 'rw',
isa => 'LWP::UserAgent',
l
t;
}
sub _get_json {
my $self = shift;
my $json = $self->_get(@_);
return JSON::decode_json($json);
}
sub binaries {
my ($self, $name, $version) = @_;
my $json = $self->_get_json("/mr/binary/$
on})
->binary($_->{name}, $_->{binary_version}),
@{ $json->{result} };
if (defined $version) {
$version = qr/^\Q$version\E$/ unless ref($version) eq 'R
on;
my $json = $self->_service->_get_json("/mr/package/$package/$version/srcfiles?fileinfo=1");
my @files = map Debian::Snapshot::File->new(
hash => $_->{hash},
_fileinfo => $json->{filein
ice,
), @{ $json->{result} };
return \@files;
}
sub binaries {
my $self = shift;
my $package = $self->package;
my $version = $self->version;
my $json = $self->_service->_get_json("/mr/package
ackage/$version/binpackages");
my @binaries = map $self->binary($_->{name}, $_->{version}), @{ $json->{result} };
return \@binaries;
}
sub binary {
my ($self, $name, $binary_version) = @_;
retur
n = $self->binary_version;
my $json = $self->_service->_get_json(
"/mr/package/$package/$version/binfiles/$binpkg/$binversion?fileinfo=1"
);
my @files = @{ $json->{result} };
for (@files) {
$_->{file} = Debian::Snapshot::File->new(
hash => $_->{hash},
_fileinfo => $json->{fileinfo}->{ $_->{hash} },
_service => $self->_service,
);
}
return \@files;
}
sub _as_string {
my $
e;
}
sub _fileinfo_builder {
my $self = shift;
my $hash = $self->hash;
$self->_service->_get_json("/mr/file/$hash/info")->{result};
}
no Any::Moose;
1;
=pod
=head1 NAME
Debian::Snapshot::Fi