diff --git a/Admin/Hooks/Web/Api.php b/Admin/Hooks/Web/Api.php index 1faa5c2..deb3680 100755 --- a/Admin/Hooks/Web/Api.php +++ b/Admin/Hooks/Web/Api.php @@ -12,14 +12,4 @@ */ declare(strict_types=1); -return [ - '/POST:Module:.*?\-create/' => [ - 'callback' => ['\Modules\Auditor\Controller\ApiController:eventLogCreate'], - ], - '/POST:Module:.*?\-update/' => [ - 'callback' => ['\Modules\Auditor\Controller\ApiController:eventLogUpdate'], - ], - '/POST:Module:.*?\-delete/' => [ - 'callback' => ['\Modules\Auditor\Controller\ApiController:eventLogDelete'], - ], -]; +return []; diff --git a/Controller/ApiController.php b/Controller/ApiController.php index 728bc89..3656898 100755 --- a/Controller/ApiController.php +++ b/Controller/ApiController.php @@ -184,4 +184,99 @@ final class ApiController extends Controller AuditMapper::create()->execute($audit); } + + /** + * Log relation creation + * + * @param int $account Account who created the model + * @param mixed $old Old value (unused, should be null) + * @param mixed $new New value (unused, should be null) + * @param int $type Module model type + * @param string $trigger What triggered this log? + * @param string $module Module name + * @param string $ref Reference to other model + * @param string $content Message + * @param string $ip Ip + * + * @return void + * + * @api + * + * @since 1.0.0 + */ + public function eventLogRelationCreate( + int $account, + mixed $old, + mixed $new, + int $type = 0, + string $trigger = '', + string $module = null, + string $ref = null, + string $content = null, + string $ip = null + ) : void + { + // Using empty string as the data is represented by the current model + $newString = StringUtils::stringify($new, \JSON_PRETTY_PRINT); + $audit = new Audit( + new NullAccount($account), + null, + $newString, + $type, + $trigger, + $module, + $ref, + $content, + (int) \ip2long($ip ?? '127.0.0.1') + ); + + AuditMapper::create()->execute($audit); + } + + /** + * Log relation delete + * + * @param int $account Account who created the model + * @param mixed $old Old value + * @param mixed $new New value (unused, should be null) + * @param int $type Module model type + * @param string $trigger What triggered this log? + * @param string $module Module name + * @param string $ref Reference to other model + * @param string $content Message + * @param string $ip Ip + * + * @return void + * + * @api + * + * @since 1.0.0 + */ + public function eventLogRelationDelete( + int $account, + mixed $old, + mixed $new, + int $type = 0, + string $trigger = '', + string $module = null, + string $ref = null, + string $content = null, + string $ip = null + ) : void + { + $oldString = StringUtils::stringify($old, \JSON_PRETTY_PRINT); + $audit = new Audit( + new NullAccount($account), + $oldString, + null, + $type, + $trigger, + $module, + $ref, + $content, + (int) \ip2long($ip ?? '127.0.0.1') + ); + + AuditMapper::create()->execute($audit); + } }