summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--lib/App/Hiveminder/Command/Decline.pm32
1 files changed, 32 insertions, 0 deletions
diff --git a/lib/App/Hiveminder/Command/Decline.pm b/lib/App/Hiveminder/Command/Decline.pm
new file mode 100644
index 0000000..da34aac
--- /dev/null
+++ b/lib/App/Hiveminder/Command/Decline.pm
@@ -0,0 +1,32 @@
+#!/usr/bin/perl
+package App::Hiveminder::Command::Decline;
+use Moose;
+use App::Hiveminder::Utils qw/parse_args display_tasks/;
+extends 'App::Hiveminder::Command';
+
+=head2 NAME
+
+App::Hiveminder::Command::Decline - Decline offered tasks
+
+=cut
+
+sub command_names { qw/decline/ }
+
+sub command {
+ my $self = shift;
+
+ return unless @_ > 0;
+ my $ret = '';
+ for my $task ($hm->get_tasks(%{ parse_args @_ })) {
+ my $updated_task = $hm->update_task($task, accepted => 0);
+ # we get a task hash with each field undef if it succeeds
+ if (!defined $updated_task->{id}) {
+ $ret .= "Declined " . display_tasks($task) . "\n";
+ }
+ }
+
+ return $ret;
+}
+
+__PACKAGE__->meta()->make_immutable();
+1;