From f7508b698a226f6ec5ee37a631aa501548361c29 Mon Sep 17 00:00:00 2001 From: LD-Reborn Date: Sun, 2 Nov 2025 14:44:47 +0100 Subject: [PATCH] Added admin settings update endpoint --- src/Controllers/SettingsController.cs | 23 ++++++++++++++++++++--- src/Models/SettingsRequestModels.cs | 10 ++++++++++ src/Models/SettingsResponseModels.cs | 12 ++++++++++++ 3 files changed, 42 insertions(+), 3 deletions(-) create mode 100644 src/Models/SettingsRequestModels.cs create mode 100644 src/Models/SettingsResponseModels.cs diff --git a/src/Controllers/SettingsController.cs b/src/Controllers/SettingsController.cs index 41a76af..f694867 100644 --- a/src/Controllers/SettingsController.cs +++ b/src/Controllers/SettingsController.cs @@ -23,14 +23,31 @@ public class SettingsController : Controller } [HttpGet("User")] - public new IActionResult User(UsersIndexRequestModel requestModel) + public new IActionResult User() { return View(); } - + [HttpGet("Admin")] - public IActionResult Admin(UsersIndexRequestModel requestModel) + public async Task AdminAsync() { + AdminSettingsModel adminSettingsModel = await _ldap.GetAdminSettingsModelAsync(); return View(); } + [HttpPut("Admin")] + public async Task UpdateAdminAsync([FromBody]AdminUpdateRequestModel adminSettingsRequestModel) + { + if (adminSettingsRequestModel is null) + { + _logger.LogWarning("adminUpdateRequestModel is null"); + return new() { + Success = false, + ErrorMessage = "adminUpdateRequestModel is null" + }; + } + await _ldap.SetAdminSettingsModelAsync(adminSettingsRequestModel.AdminSettingsModel); + return new() { + Success = true + }; + } } \ No newline at end of file diff --git a/src/Models/SettingsRequestModels.cs b/src/Models/SettingsRequestModels.cs new file mode 100644 index 0000000..1979cee --- /dev/null +++ b/src/Models/SettingsRequestModels.cs @@ -0,0 +1,10 @@ +using System.Text.Json.Serialization; + +namespace Berufsschule_HAM.Models; + +public class AdminUpdateRequestModel +{ + [JsonPropertyName("AdminSettingsModel")] + public required AdminSettingsModel AdminSettingsModel { get; set; } +} + diff --git a/src/Models/SettingsResponseModels.cs b/src/Models/SettingsResponseModels.cs new file mode 100644 index 0000000..8687996 --- /dev/null +++ b/src/Models/SettingsResponseModels.cs @@ -0,0 +1,12 @@ +using System.Text.Json.Serialization; + +namespace Berufsschule_HAM.Models; + +public class AdminUpdateResponseModel +{ + [JsonPropertyName("Success")] + public required bool Success { get; set; } + [JsonPropertyName("ErrorMessage")] + public string? ErrorMessage { get; set; } +} +