From ef87e02d0b121923a026fdb9119c6b859e5d9b24 Mon Sep 17 00:00:00 2001 From: Glax Date: Sat, 8 Mar 2025 18:46:35 +0100 Subject: [PATCH] Add Endpoints to change single requestlimit --- API/Controllers/SettingsController.cs | 32 ++++++++++++++++++++++++++- API/TrangaSettings.cs | 2 +- 2 files changed, 32 insertions(+), 2 deletions(-) diff --git a/API/Controllers/SettingsController.cs b/API/Controllers/SettingsController.cs index 15c6dbe..572ec60 100644 --- a/API/Controllers/SettingsController.cs +++ b/API/Controllers/SettingsController.cs @@ -79,9 +79,39 @@ public class SettingsController(PgsqlContext context) : Controller { return StatusCode(501); } + + /// + /// Updates a Request-Limit value + /// + /// Type of Request + /// New limit in Requests/Minute + /// + /// Limit needs to be greater than 0 + [HttpPatch("RequestLimits/{RequestType}")] + [ProducesResponseType(Status200OK)] + [ProducesResponseType(Status400BadRequest)] + public IActionResult SetRequestLimit(RequestType RequestType, [FromBody]int requestLimit) + { + if (requestLimit <= 0) + return BadRequest(); + TrangaSettings.UpdateRequestLimit(RequestType, requestLimit); + return Ok(); + } /// - /// Reset all Request-Limits + /// Reset Request-Limit + /// + /// + [HttpDelete("RequestLimits/{RequestType}")] + [ProducesResponseType(Status200OK)] + public IActionResult ResetRequestLimits(RequestType RequestType) + { + TrangaSettings.UpdateRequestLimit(RequestType, TrangaSettings.DefaultRequestLimits[RequestType]); + return Ok(); + } + + /// + /// Reset Request-Limit /// /// [HttpDelete("RequestLimits")] diff --git a/API/TrangaSettings.cs b/API/TrangaSettings.cs index 864a76a..9f97c3a 100644 --- a/API/TrangaSettings.cs +++ b/API/TrangaSettings.cs @@ -111,7 +111,7 @@ public static class TrangaSettings ExportSettings(); } - public static void UpdateRateLimit(RequestType requestType, int newLimit) + public static void UpdateRequestLimit(RequestType requestType, int newLimit) { requestLimits[requestType] = newLimit; ExportSettings();