Skip to content

Commit e29a46b

Browse files
committed
feat: Gestione log richieste API
1 parent d3d33c2 commit e29a46b

2 files changed

Lines changed: 37 additions & 1 deletion

File tree

api/index.php

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,17 @@ function serverError()
4141
header('Access-Control-Allow-Origin: *');
4242
header('Access-Control-Allow-Methods: POST, GET, PUT, DELETE, OPTIONS');
4343

44+
$dbo->insert('zz_api_log', [
45+
'level' => 'warning',
46+
'message' => 'Richiesta API ricevuta',
47+
'name' => "API ".get('resource'),
48+
'context' => json_encode([
49+
'token' => get('token'),
50+
'resource' => get('resource'),
51+
]),
52+
]);
53+
$id_log = $dbo->lastInsertedID();
54+
4455
try {
4556
$response = Response::manage();
4657
} catch (Exception $e) {
@@ -56,6 +67,18 @@ function serverError()
5667
$response = Response::error('ok');
5768
}
5869

70+
$result = json_decode((string) $response, true);
71+
$level = ($result['status']=='200' ? 'info' : 'error');
72+
$dbo->update('zz_api_log', [
73+
'level' => $level,
74+
'message' => $result['message'],
75+
'context' => json_encode([
76+
'token' => get('token'),
77+
'resource' => get('resource'),
78+
'total-count' => $result['total-count'],
79+
]),
80+
],['id' => $id_log]);
81+
5982
json_decode((string) $response);
6083

6184
// Impostazioni di Content-Type e Charset Header

update/2_9.sql

Lines changed: 14 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -174,7 +174,7 @@ ALTER TABLE `co_provvigioni` ADD CONSTRAINT `co_provvigioni_ibfk_1` FOREIGN KEY
174174
ALTER TABLE `co_provvigioni` ADD CONSTRAINT `co_provvigioni_ibfk_2` FOREIGN KEY (`idarticolo`) REFERENCES `mg_articoli`(`id`) ON DELETE CASCADE ON UPDATE RESTRICT;
175175

176176
-- Modulo per log esecuzione task
177-
INSERT INTO `zz_modules` (`name`, `directory`, `options`, `options2`, `icon`, `version`, `compatibility`, `order`, `parent`, `default`, `enabled`) VALUES ('Log eventi', 'log_task', 'SELECT |select|FROM(SELECT name, zz_tasks_logs.level, zz_tasks_logs.message, IF( LEVEL = \'info\', \'#dff0d8\', IF(LEVEL = \'error\', \'#f2dede\', \'#fcf8e3\') ) AS \'_bg_\', IF( CHAR_LENGTH(CONTEXT) > 200, CONCAT( SUBSTRING(CONTEXT, 1, 200), \'<a title=\"\', REPLACE(CONTEXT, \'\">\', \'[...]\'), \'</a>\' ), CONTEXT ) AS \'Contesto\', CONTEXT AS \'contesto_esteso\', zz_tasks_logs.created_at AS \'Data inizio\', zz_tasks_logs.updated_at AS \'Data fine\', CONCAT( TIMESTAMPDIFF( SECOND, zz_tasks_logs.created_at, zz_tasks_logs.updated_at ), \' secondi\' ) AS \'Eseguito in\'FROM `zz_tasks_logs` INNER JOIN `zz_tasks` ON `zz_tasks`.`id`=`zz_tasks_logs`.`id_task` WHERE 1=1 HAVING 2=2 UNION ALL SELECT NAME, zz_api_log.level, zz_api_log.message, IF( LEVEL = \'info\', \'#dff0d8\', IF(LEVEL = \'error\', \'#f2dede\', \'#fcf8e3\') ) AS \'_bg_\', IF( CHAR_LENGTH(CONTEXT) > 200, CONCAT( SUBSTRING(CONTEXT, 1, 200), \'<a title=\"\', REPLACE(CONTEXT, \'\">\',\'[...]\'), \'</a>\' ), CONTEXT ) AS \'Contesto\', CONTEXT AS \'contesto_esteso\', zz_api_log.created_at AS \'Data inizio\', zz_api_log.updated_at AS \'Data fine\', CONCAT( TIMESTAMPDIFF( SECOND, zz_api_log.created_at, zz_api_log.updated_at ), \' secondi\' ) AS \'Eseguito in\'FROM `zz_api_log`WHERE 1=1 HAVING 2=2 ) AS dati ORDER BY `Data inizio` DESC', '', 'fa fa-calendar', '2.5.7.1', '2.5.7.1', '5', (SELECT `id` FROM `zz_modules` t WHERE t.`name` = 'Gestione task '), '1', '1');
177+
INSERT INTO `zz_modules` (`name`, `directory`, `options`, `options2`, `icon`, `version`, `compatibility`, `order`, `parent`, `default`, `enabled`) VALUES ('Log eventi', 'log_task', 'SELECT |select|FROM(SELECT zz_tasks_logs.id, name, zz_tasks_logs.level, zz_tasks_logs.message, IF( LEVEL = \'info\', \'#dff0d8\', IF(LEVEL = \'error\', \'#f2dede\', \'#fcf8e3\') ) AS \'_bg_\', IF( CHAR_LENGTH(CONTEXT) > 200, CONCAT( SUBSTRING(CONTEXT, 1, 200), \'<a title=\"\', REPLACE(CONTEXT, \'\">\', \'[...]\'), \'</a>\' ), CONTEXT ) AS \'Contesto\', CONTEXT AS \'contesto_esteso\', zz_tasks_logs.created_at AS \'Data inizio\', zz_tasks_logs.updated_at AS \'Data fine\', CONCAT( TIMESTAMPDIFF( SECOND, zz_tasks_logs.created_at, zz_tasks_logs.updated_at ), \' secondi\' ) AS \'Eseguito in\'FROM `zz_tasks_logs` INNER JOIN `zz_tasks` ON `zz_tasks`.`id`=`zz_tasks_logs`.`id_task` WHERE 1=1 HAVING 2=2 UNION ALL SELECT zz_api_log.id, NAME, zz_api_log.level, zz_api_log.message, IF( LEVEL = \'info\', \'#dff0d8\', IF(LEVEL = \'error\', \'#f2dede\', \'#fcf8e3\') ) AS \'_bg_\', IF( CHAR_LENGTH(CONTEXT) > 200, CONCAT( SUBSTRING(CONTEXT, 1, 200), \'<a title=\"\', REPLACE(CONTEXT, \'\">\',\'[...]\'), \'</a>\' ), CONTEXT ) AS \'Contesto\', CONTEXT AS \'contesto_esteso\', zz_api_log.created_at AS \'Data inizio\', zz_api_log.updated_at AS \'Data fine\', CONCAT( TIMESTAMPDIFF( SECOND, zz_api_log.created_at, zz_api_log.updated_at ), \' secondi\' ) AS \'Eseguito in\'FROM `zz_api_log`WHERE 1=1 HAVING 2=2 ) AS dati ORDER BY `Data inizio` DESC', '', 'fa fa-calendar', '2.5.7.1', '2.5.7.1', '5', (SELECT `id` FROM `zz_modules` t WHERE t.`name` = 'Gestione task '), '1', '1');
178178

179179
SELECT @id_module := id FROM zz_modules WHERE `name` = 'Log eventi';
180180
INSERT INTO `zz_modules_lang` (`id_lang`, `id_record`, `title`) VALUES
@@ -229,6 +229,19 @@ INSERT INTO `zz_segments_lang` (`id`, `id_lang`, `id_record`, `title`) VALUES
229229
(NULL, '1', (SELECT `id` FROM `zz_segments` WHERE `id_module` = @id_module AND `name` = 'Errori'), 'Errori'),
230230
(NULL, '2', (SELECT `id` FROM `zz_segments` WHERE `id_module` = @id_module AND `name` = 'Errori'), 'Errors');
231231

232+
-- Gestione log API
233+
-- Creazione tabella di appoggio
234+
CREATE TABLE `zz_api_log` (
235+
`id` int(11) NOT NULL AUTO_INCREMENT,
236+
`level` VARCHAR(255) NOT NULL,
237+
`name` VARCHAR(255) NOT NULL,
238+
`message` VARCHAR(255) NULL DEFAULT NULL,
239+
`context` TEXT NULL DEFAULT NULL,
240+
`created_at` timestamp NULL DEFAULT CURRENT_TIMESTAMP,
241+
`updated_at` TIMESTAMP on update CURRENT_TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
242+
PRIMARY KEY (`id`)
243+
) ENGINE=InnoDB;
244+
232245
-- Gestione ammortamenti
233246
ALTER TABLE `co_righe_documenti` ADD `is_cespite` BOOLEAN NOT NULL;
234247

0 commit comments

Comments
 (0)