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 )