From f5deeec6c94282dc2191230828e7c1ed266c8c75 Mon Sep 17 00:00:00 2001 From: Polianin Nikita Date: Wed, 29 May 2024 03:44:24 +0300 Subject: [PATCH] feat: add endpoint for logging --- .../Requests/Configuration/LoggingRequest.cs | 25 +++++++++++++++++ .../Configuration/SetupController.cs | 28 +++++++++++++++++++ 2 files changed, 53 insertions(+) create mode 100644 ApiDto/Requests/Configuration/LoggingRequest.cs diff --git a/ApiDto/Requests/Configuration/LoggingRequest.cs b/ApiDto/Requests/Configuration/LoggingRequest.cs new file mode 100644 index 0000000..eba6428 --- /dev/null +++ b/ApiDto/Requests/Configuration/LoggingRequest.cs @@ -0,0 +1,25 @@ +using System.ComponentModel.DataAnnotations; + +namespace Mirea.Api.Dto.Requests.Configuration; + +/// +/// Represents a request to configure logging settings. +/// +public class LoggingRequest +{ + /// + /// Gets or sets a value indicating whether logging to file is enabled. + /// + [Required] + public bool EnableLogToFile { get; set; } + + /// + /// Gets or sets the log file name. + /// + public string? LogFileName { get; set; } + + /// + /// Gets or sets the log file path. + /// + public string? LogFilePath { get; set; } +} \ No newline at end of file diff --git a/Endpoint/Controllers/Configuration/SetupController.cs b/Endpoint/Controllers/Configuration/SetupController.cs index ed8512a..ccc51be 100644 --- a/Endpoint/Controllers/Configuration/SetupController.cs +++ b/Endpoint/Controllers/Configuration/SetupController.cs @@ -186,6 +186,34 @@ public class SetupController(ISetupToken setupToken, IMaintenanceModeNotConfigur return Ok(true); } + + [HttpPost("SetLogging")] + [TokenAuthentication] + [BadRequestResponse] + public ActionResult SetLogging([FromBody] LoggingRequest? request) + { + var settings = (request == null) switch + { + true => new LogSettings + { + EnableLogToFile = true, + LogFileName = "logging-", + LogFilePath = "logs" + }, + false => new LogSettings + { + EnableLogToFile = request.EnableLogToFile, + LogFileName = request.LogFileName, + LogFilePath = request.LogFilePath + } + }; + + var general = GeneralConfig; + general.LogSettings = settings; + GeneralConfig = general; + + return true; + } }