From 09e7d74d2f37276c985ae2eec1468aeba04fe04a Mon Sep 17 00:00:00 2001 From: sergiotarxz Date: Sat, 13 Nov 2021 15:00:01 +0100 Subject: [PATCH] Adding log of recognized actions. --- cualsea-server/Makefile.PL | 1 + cualsea-server/lib/Cualsea/Server/DB.pm | 6 ++++++ .../lib/Cualsea/Server/MessageController.pm | 13 ++++++++++--- 3 files changed, 17 insertions(+), 3 deletions(-) diff --git a/cualsea-server/Makefile.PL b/cualsea-server/Makefile.PL index 0964100..0716c47 100644 --- a/cualsea-server/Makefile.PL +++ b/cualsea-server/Makefile.PL @@ -9,5 +9,6 @@ WriteMakefile( test => { TESTS => 't/*/*.t' }, PREREQ_PM => { 'DBD::SQLite' => 0, + 'DateTime' => 0, } ); diff --git a/cualsea-server/lib/Cualsea/Server/DB.pm b/cualsea-server/lib/Cualsea/Server/DB.pm index 0beaca8..0c8d61a 100644 --- a/cualsea-server/lib/Cualsea/Server/DB.pm +++ b/cualsea-server/lib/Cualsea/Server/DB.pm @@ -19,6 +19,12 @@ my @migrations = ( init TEXT, pidfile TEXT, binpath TEXT + );', + 'CREATE TABLE log ( + id INTEGER PRIMARY KEY, + date_execution TEXT, + parameters TEXT, + result TEXT );' ); diff --git a/cualsea-server/lib/Cualsea/Server/MessageController.pm b/cualsea-server/lib/Cualsea/Server/MessageController.pm index b52ea7b..b05f054 100644 --- a/cualsea-server/lib/Cualsea/Server/MessageController.pm +++ b/cualsea-server/lib/Cualsea/Server/MessageController.pm @@ -13,6 +13,8 @@ use Carp qw/carp/; use Params::ValidationCompiler qw/validation_for/; use Types::Standard qw/Object HashRef Str/; use Try::Tiny; +use DateTime; +use JSON; use Cualsea::MessageManager; use Cualsea::Server::DB; @@ -23,7 +25,7 @@ sub handle_add { my $init = $params{init}; my $pidfile = $params{pidfile}; my $binpath = $params{binpath}; - if ( !-e $binpath || $init ne 'sysvinit' || !_validate_init_name($name) ) { + if ( $init ne 'sysvinit' || !_validate_init_name($name) ) { return { is_error => 1, desc => "Parameters didn't pass contraints on add", @@ -295,7 +297,7 @@ sub new { say "Got parameters:"; say Data::Dumper::Dumper $params; if ( !exists $COMMANDS{$command} ) { - return { is_error => 1, status => 404 }; + return { is_error => 1, status => 404, desc => 'Command don\'t exists.' }; } my $command_info = $COMMANDS{$command}; @@ -335,7 +337,12 @@ sub new { if ( !defined $handle ) { return { is_error => 1, status => 501 }; } - return $handle->(%params); + my $result = $handle->(%params); + my $dbh = Cualsea::Server::DB->dbh(); + $dbh->do(<<'EOF', undef, DateTime->now().'', encode_json($message), encode_json($result)); +INSERT INTO log (date_execution, parameters, result) VALUES (?, ?, ?); +EOF + return $result; } }