App-reposdb
view release on metacpan or search on metacpan
lib/App/reposdb.pm view on Meta::CPAN
my %args = @_;
_set_args_default(\%args, 1);
my $dbh = _connect_db(\%args);
return [400, "Please specify repo name"] unless defined $args{repo};
$dbh->begin_work;
my ($tags) = $dbh->selectrow_array("SELECT tags FROM repos WHERE name=?",
{}, $args{repo});
defined($tags) or return [404, "No such repo '$args{repo}'"];
my %tags = map { $_ => 1 } split /,/, $tags;
delete $tags{$_} for @{ $args{tags} };
$dbh->do("UPDATE repos SET tags=? WHERE name=?",
{}, join(",", sort keys %tags), $args{repo});
$dbh->commit;
[200];
}
$SPEC{remove_all_repo_tags} = {
lib/App/reposdb.pm view on Meta::CPAN
my %args = @_;
_set_args_default(\%args, 1);
my $dbh = _connect_db(\%args);
return [400, "Please specify repo name"] unless defined $args{repo};
$dbh->begin_work;
my ($tags) = $dbh->selectrow_array("SELECT tags FROM repos WHERE name=?",
{}, $args{repo});
defined($tags) or return [404, "No such repo '$args{repo}'"];
$dbh->do("UPDATE repos SET tags=NULL WHERE name=?",
{}, $args{repo});
$dbh->commit;
[200];
}
1;
# ABSTRACT: Manipulate repos.db
__END__
script/_reposdb-inline view on Meta::CPAN
#Generate an enveloped error response (see L<Rinci::function>). Can accept
#arguments in an unordered fashion, by utilizing the fact that status codes are
#always integers, messages are strings, result metadata are hashes, and previous
#error responses are arrays. Error responses also seldom contain actual result.
#Status code defaults to 500, status message will default to "FUNC failed". This
#function will also fill the information in the C<logs> result metadata.
#
#Examples:
#
# err(); # => [500, "FUNC failed", undef, {...}];
# err(404); # => [404, "FUNC failed", undef, {...}];
# err(404, "Not found"); # => [404, "Not found", ...]
# err("Not found", 404); # => [404, "Not found", ...]; # order doesn't matter
# err([404, "Prev error"]); # => [500, "FUNC failed", undef,
# # {logs=>[...], prev=>[404, "Prev error"]}]
#
#Will put C<stack_trace> in logs only if C<Carp::Always> module is loaded.
#
#=head2 warn_err(...)
#
#This is a shortcut for:
#
# $res = err(...);
# warn "ERROR $res->[0]: $res->[1]";
#
( run in 1.726 second using v1.01-cache-2.11-cpan-39bf76dae61 )