App-Dochazka-CLI
view release on metacpan or search on metacpan
lib/App/Dochazka/CLI/CommandMap.pm view on Meta::CPAN
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
# ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
# LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
# POSSIBILITY OF SUCH DAMAGE.
# *************************************************************************
#
# Command map
#
package App::Dochazka::CLI::CommandMap;
use 5.012;
use strict;
use warnings;
use App::CELL qw( $CELL );
use App::Dochazka::CLI::Commands::Activity qw(
activity_all
);
use App::Dochazka::CLI::Commands::Component qw(
component_path
generate_report
);
use App::Dochazka::CLI::Commands::Employee qw(
employee_ldap
employee_ldap_import
employee_list
employee_profile
employee_team
set_employee_self_sec_id
set_employee_other_sec_id
set_employee_self_fullname
set_employee_other_fullname
set_employee_self_password
set_employee_other_password
set_employee_supervisor
);
use App::Dochazka::CLI::Commands::History qw(
add_priv_history
add_schedule_history
dump_priv_history
dump_schedule_history
set_history_remark
);
use App::Dochazka::CLI::Commands::Interval qw(
interval_date
interval_date_date1
interval_datelist
interval_tsrange
interval_month
interval_num_num1
interval_promptdate
interval_new_date_time_date1_time1
interval_new_time_time1
interval_new_timerange
);
use App::Dochazka::CLI::Commands::Misc qw(
change_prompt_date
noop
);
use App::Dochazka::CLI::Commands::Priv qw(
show_priv_as_at
);
use App::Dochazka::CLI::Commands::Schedule qw(
add_memsched_entry
assign_memsched_scode
clear_memsched_entries
dump_memsched_entries
fetch_all_schedules
replicate_memsched_entry
schedule_all
schedule_new
schedulespec
schedulespec_remark
schedulespec_scode
show_schedule_as_at
);
use Data::Dumper;
use Exporter qw( import );
=head1 NAME
App::Dochazka::CLI::CommandMap - Command map
=head1 PACKAGE VARIABLES
=cut
# bring in the _method... functions
require App::Dochazka::CLI::Commands::RestTest::Activity;
require App::Dochazka::CLI::Commands::RestTest::Employee;
require App::Dochazka::CLI::Commands::RestTest::Interval;
require App::Dochazka::CLI::Commands::RestTest::Lock;
require App::Dochazka::CLI::Commands::RestTest::Priv;
require App::Dochazka::CLI::Commands::RestTest::Schedule;
require App::Dochazka::CLI::Commands::RestTest::Top;
our $dispatch_map = {
# Top-level commands
"GET" => \&_method,
"PUT" => \&_method,
"POST" => \&_method,
"DELETE" => \&_method,
"GET BUGREPORT" => \&_method_bugreport,
"PUT BUGREPORT" => \&_method_bugreport,
"POST BUGREPORT" => \&_method_bugreport,
"DELETE BUGREPORT" => \&_method_bugreport,
"GET CONFIGINFO" => \&_method_configinfo,
"PUT CONFIGINFO" => \&_method_configinfo,
"POST CONFIGINFO" => \&_method_configinfo,
lib/App/Dochazka/CLI/CommandMap.pm view on Meta::CPAN
"INTERVAL FETCH _MONTH _NUM" => \&interval_month,
"EMPLOYEE_SPEC INTERVAL FETCH _MONTH _NUM" => \&interval_month,
"INTERVAL FILLUP _MONTH _NUM" => \&interval_month,
"EMPLOYEE_SPEC INTERVAL FILLUP _MONTH _NUM" => \&interval_month,
"INTERVAL FILLUP DRY_RUN _MONTH _NUM" => \&interval_month,
"EMPLOYEE_SPEC INTERVAL FILLUP DRY_RUN _MONTH _NUM" => \&interval_month,
"INTERVAL SUMMARY _MONTH _NUM" => \&interval_month,
"EMPLOYEE_SPEC INTERVAL SUMMARY _MONTH _NUM" => \&interval_month,
"INTERVAL REPORT _MONTH _NUM" => \&interval_month,
"EMPLOYEE_SPEC INTERVAL REPORT _MONTH _NUM" => \&interval_month,
"INTERVAL DELETE _MONTH _NUM" => \&interval_month,
"EMPLOYEE_SPEC INTERVAL DELETE _MONTH _NUM" => \&interval_month,
"INTERVAL _NUM" => \&interval_num_num1,
"EMPLOYEE_SPEC INTERVAL _NUM" => \&interval_num_num1,
"INTERVAL FETCH _NUM" => \&interval_num_num1,
"EMPLOYEE_SPEC INTERVAL FETCH _NUM" => \&interval_num_num1,
"INTERVAL FILLUP _NUM" => \&interval_num_num1,
"EMPLOYEE_SPEC INTERVAL FILLUP _NUM" => \&interval_num_num1,
"INTERVAL FILLUP DRY_RUN _NUM" => \&interval_num_num1,
"EMPLOYEE_SPEC INTERVAL FILLUP DRY_RUN _NUM" => \&interval_num_num1,
"INTERVAL SUMMARY _NUM" => \&interval_num_num1,
"EMPLOYEE_SPEC INTERVAL SUMMARY _NUM" => \&interval_num_num1,
"INTERVAL REPORT _NUM" => \&interval_num_num1,
"EMPLOYEE_SPEC INTERVAL REPORT _NUM" => \&interval_num_num1,
"INTERVAL DELETE _NUM" => \&interval_num_num1,
"EMPLOYEE_SPEC INTERVAL DELETE _NUM" => \&interval_num_num1,
"INTERVAL _NUM _NUM1" => \&interval_num_num1,
"EMPLOYEE_SPEC INTERVAL _NUM _NUM1" => \&interval_num_num1,
"INTERVAL FETCH _NUM _NUM1" => \&interval_num_num1,
"EMPLOYEE_SPEC INTERVAL FETCH _NUM _NUM1" => \&interval_num_num1,
"INTERVAL FILLUP _NUM _NUM1" => \&interval_num_num1,
"EMPLOYEE_SPEC INTERVAL FILLUP _NUM _NUM1" => \&interval_num_num1,
"INTERVAL FILLUP DRY_RUN _NUM _NUM1" => \&interval_num_num1,
"EMPLOYEE_SPEC INTERVAL FILLUP DRY_RUN _NUM _NUM1" => \&interval_num_num1,
"INTERVAL SUMMARY _NUM _NUM1" => \&interval_num_num1,
"EMPLOYEE_SPEC INTERVAL SUMMARY _NUM _NUM1" => \&interval_num_num1,
"INTERVAL REPORT _NUM _NUM1" => \&interval_num_num1,
"EMPLOYEE_SPEC INTERVAL REPORT _NUM _NUM1" => \&interval_num_num1,
"INTERVAL DELETE _NUM _NUM1" => \&interval_num_num1,
"EMPLOYEE_SPEC INTERVAL DELETE _NUM _NUM1" => \&interval_num_num1,
"INTERVAL FILLUP _TSRANGE" => \&interval_tsrange,
"EMPLOYEE_SPEC INTERVAL FILLUP _TSRANGE" => \&interval_tsrange,
"INTERVAL FILLUP DRY_RUN _TSRANGE" => \&interval_tsrange,
"EMPLOYEE_SPEC INTERVAL FILLUP DRY_RUN _TSRANGE" => \&interval_tsrange,
"INTERVAL SUMMARY _TSRANGE" => \&interval_tsrange,
"EMPLOYEE_SPEC INTERVAL SUMMARY _TSRANGE" => \&interval_tsrange,
"INTERVAL REPORT _TSRANGE" => \&interval_tsrange,
"EMPLOYEE_SPEC INTERVAL REPORT _TSRANGE" => \&interval_tsrange,
"INTERVAL FILLUP DATELIST _TERM" => \&interval_datelist,
"EMPLOYEE_SPEC INTERVAL FILLUP DATELIST _TERM" => \&interval_datelist,
"INTERVAL FILLUP DATELIST DRY_RUN _TERM" => \&interval_datelist,
"EMPLOYEE_SPEC INTERVAL FILLUP DATELIST DRY_RUN _TERM" => \&interval_datelist,
# add/insert new intervals
"INTERVAL _TIME _TIME1 _TERM" => \&interval_new_time_time1,
"INTERVAL _TIME _HYPHEN _TIME1 _TERM" => \&interval_new_time_time1,
"INTERVAL _TIMERANGE _TERM" => \&interval_new_timerange,
"INTERVAL _DATE _TIME _TIME1 _TERM" => \&interval_new_time_time1,
"INTERVAL _DATE _TIME _HYPHEN _TIME1 _TERM" => \&interval_new_time_time1,
"INTERVAL _DATE _TIMERANGE _TERM" => \&interval_new_timerange,
"INTERVAL _DATE _TIME _DATE1 _TIME1 _TERM" => \&interval_new_date_time_date1_time1,
"INTERVAL _DATE _TIME _HYPHEN _DATE1 _TIME1 _TERM" => \&interval_new_date_time_date1_time1,
# Lock commands
# Priv commands
"PRIV" => \&show_priv_as_at,
"PRIV _DATE" => \&show_priv_as_at,
"EMPLOYEE_SPEC PRIV" => \&show_priv_as_at,
"EMPLOYEE_SPEC PRIV _DATE" => \&show_priv_as_at,
# Prompt date commands
"PROMPT _DATE" => \&change_prompt_date,
"PROMPT DATE _DATE" => \&change_prompt_date,
# Schedule commands
"SCHEDULE ALL" => \&schedule_all,
"SCHEDULE ALL DISABLED" => \&schedule_all,
"SCHEDULE" => \&show_schedule_as_at,
"SCHEDULE _DATE" => \&show_schedule_as_at,
"EMPLOYEE_SPEC SCHEDULE" => \&show_schedule_as_at,
"EMPLOYEE_SPEC SCHEDULE _DATE" => \&show_schedule_as_at,
"SCHEDULE _DOW _TIME _DOW1 _TIME1" => \&add_memsched_entry,
"SCHEDULE _DOW _TIME _HYPHEN _DOW1 _TIME1" => \&add_memsched_entry,
"SCHEDULE _DOW _TIMERANGE" => \&add_memsched_entry,
"SCHEDULE ALL _TIMERANGE" => \&replicate_memsched_entry,
"SCHEDULE CLEAR" => \&clear_memsched_entries,
"SCHEDULE DUMP" => \&dump_memsched_entries,
"SCHEDULE FETCH ALL" => \&fetch_all_schedules,
"SCHEDULE FETCH ALL DISABLED" => \&fetch_all_schedules,
"SCHEDULE MEMORY" => \&dump_memsched_entries,
"SCHEDULE NEW" => \&schedule_new,
"SCHEDULE SCODE _TERM" => \&assign_memsched_scode,
"SCHEDULE_SPEC" => \&schedulespec,
"SCHEDULE_SPEC SHOW" => \&schedulespec,
"SCHEDULE_SPEC REMARK" => \&schedulespec_remark,
"SCHEDULE_SPEC SCODE _TERM" => \&schedulespec_scode,
"SCHEDULE_SPEC SET REMARK" => \&schedulespec_remark,
"SCHEDULE_SPEC SET SCODE _TERM" => \&schedulespec_scode,
};
=head1 FUNCTIONS
=head2 go_exit
Return the "magic" status code that causes dochazka-cli to exit.
=cut
sub go_exit {
return $CELL->status_ok( 'DOCHAZKA_CLI_EXIT', payload => "Dochazka over and out" );
}
1;
( run in 1.964 second using v1.01-cache-2.11-cpan-39bf76dae61 )