From 95fc8ddfffca9e9c600eddc8d95b29234d4356f6 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Thu, 24 Jul 2025 14:07:18 +0000 Subject: [PATCH] Add OpenAPI attributes to all remaining request handlers Co-authored-by: andrew-welker <1765622+andrew-welker@users.noreply.github.com> --- .../Web/RequestHandlers/AppDebugRequestHandler.cs | 10 ++++++++++ .../RequestHandlers/DebugSessionRequestHandler.cs | 11 ++++++++++- .../Web/RequestHandlers/DevMethodsRequestHandler.cs | 10 ++++++++++ .../Web/RequestHandlers/DevPropsRequestHandler.cs | 10 ++++++++++ .../DisableAllStreamDebugRequestHandler.cs | 7 +++++++ .../DoNotLoadConfigOnNextBootRequestHandler.cs | 10 ++++++++++ .../GetJoinMapForBridgeKeyRequestHandler.cs | 10 ++++++++++ .../GetJoinMapForDeviceKeyRequestHandler.cs | 12 ++++++++++++ .../Web/RequestHandlers/GetRoutingPortsHandler.cs | 12 +++++++++++- .../Web/RequestHandlers/GetTieLinesRequestHandler.cs | 9 ++++++++- .../GetTypesByFilterRequestHandler.cs | 10 ++++++++++ .../Web/RequestHandlers/GetTypesRequestHandler.cs | 9 +++++++++ .../SetDeviceStreamDebugRequestHandler.cs | 11 +++++++++++ 13 files changed, 128 insertions(+), 3 deletions(-) diff --git a/src/PepperDash.Essentials.Core/Web/RequestHandlers/AppDebugRequestHandler.cs b/src/PepperDash.Essentials.Core/Web/RequestHandlers/AppDebugRequestHandler.cs index 0b7497d2..64bd9ba6 100644 --- a/src/PepperDash.Essentials.Core/Web/RequestHandlers/AppDebugRequestHandler.cs +++ b/src/PepperDash.Essentials.Core/Web/RequestHandlers/AppDebugRequestHandler.cs @@ -2,12 +2,22 @@ using Newtonsoft.Json; using PepperDash.Core; using PepperDash.Core.Web.RequestHandlers; +using PepperDash.Essentials.Core.Web.Attributes; using System; using Serilog.Events; using Newtonsoft.Json.Converters; namespace PepperDash.Essentials.Core.Web.RequestHandlers { + [HttpGet] + [HttpPost] + [OpenApiOperation( + Summary = "AppDebug", + Description = "Get or set application debug level settings", + OperationId = "appDebug")] + [OpenApiRequestBody(Description = "Debug level configuration")] + [OpenApiResponse(200, Description = "Successful response", ContentType = "application/json")] + [OpenApiResponse(400, Description = "Bad Request")] public class AppDebugRequestHandler : WebApiBaseRequestHandler { /// diff --git a/src/PepperDash.Essentials.Core/Web/RequestHandlers/DebugSessionRequestHandler.cs b/src/PepperDash.Essentials.Core/Web/RequestHandlers/DebugSessionRequestHandler.cs index 80c7bfbe..1237f13b 100644 --- a/src/PepperDash.Essentials.Core/Web/RequestHandlers/DebugSessionRequestHandler.cs +++ b/src/PepperDash.Essentials.Core/Web/RequestHandlers/DebugSessionRequestHandler.cs @@ -4,6 +4,7 @@ using Crestron.SimplSharpPro.EthernetCommunication; using Newtonsoft.Json; using PepperDash.Core; using PepperDash.Core.Web.RequestHandlers; +using PepperDash.Essentials.Core.Web.Attributes; using Serilog.Events; using System; using System.Collections.Generic; @@ -13,7 +14,15 @@ using System.Threading.Tasks; namespace PepperDash.Essentials.Core.Web.RequestHandlers { - public class DebugSessionRequestHandler : WebApiBaseRequestHandler + [HttpGet] + [HttpPost] + [OpenApiOperation( + Summary = "DebugSession", + Description = "Start or stop a WebSocket debug session", + OperationId = "debugSession")] + [OpenApiResponse(200, Description = "Successful response", ContentType = "application/json")] + [OpenApiResponse(400, Description = "Bad Request")] + public class DebugSessionRequestHandler : WebApiBaseRequestHandler { public DebugSessionRequestHandler() : base(true) diff --git a/src/PepperDash.Essentials.Core/Web/RequestHandlers/DevMethodsRequestHandler.cs b/src/PepperDash.Essentials.Core/Web/RequestHandlers/DevMethodsRequestHandler.cs index 263eb161..f4e536a0 100644 --- a/src/PepperDash.Essentials.Core/Web/RequestHandlers/DevMethodsRequestHandler.cs +++ b/src/PepperDash.Essentials.Core/Web/RequestHandlers/DevMethodsRequestHandler.cs @@ -3,9 +3,19 @@ using Crestron.SimplSharp.WebScripting; using Newtonsoft.Json; using PepperDash.Core; using PepperDash.Core.Web.RequestHandlers; +using PepperDash.Essentials.Core.Web.Attributes; namespace PepperDash.Essentials.Core.Web.RequestHandlers { + [HttpGet] + [OpenApiOperation( + Summary = "DevMethods", + Description = "Retrieve available methods for a specific device", + OperationId = "getDeviceMethods")] + [OpenApiParameter("deviceKey", Description = "The key of the device")] + [OpenApiResponse(200, Description = "Successful response", ContentType = "application/json")] + [OpenApiResponse(400, Description = "Bad Request")] + [OpenApiResponse(404, Description = "Device not found")] public class DevMethodsRequestHandler : WebApiBaseRequestHandler { /// diff --git a/src/PepperDash.Essentials.Core/Web/RequestHandlers/DevPropsRequestHandler.cs b/src/PepperDash.Essentials.Core/Web/RequestHandlers/DevPropsRequestHandler.cs index c00e47c2..6961121b 100644 --- a/src/PepperDash.Essentials.Core/Web/RequestHandlers/DevPropsRequestHandler.cs +++ b/src/PepperDash.Essentials.Core/Web/RequestHandlers/DevPropsRequestHandler.cs @@ -2,9 +2,19 @@ using Crestron.SimplSharp.WebScripting; using Newtonsoft.Json; using PepperDash.Core.Web.RequestHandlers; +using PepperDash.Essentials.Core.Web.Attributes; namespace PepperDash.Essentials.Core.Web.RequestHandlers { + [HttpGet] + [OpenApiOperation( + Summary = "DevProps", + Description = "Retrieve properties for a specific device", + OperationId = "getDeviceProperties")] + [OpenApiParameter("deviceKey", Description = "The key of the device")] + [OpenApiResponse(200, Description = "Successful response", ContentType = "application/json")] + [OpenApiResponse(400, Description = "Bad Request")] + [OpenApiResponse(404, Description = "Device not found")] public class DevPropsRequestHandler : WebApiBaseRequestHandler { /// diff --git a/src/PepperDash.Essentials.Core/Web/RequestHandlers/DisableAllStreamDebugRequestHandler.cs b/src/PepperDash.Essentials.Core/Web/RequestHandlers/DisableAllStreamDebugRequestHandler.cs index 0e682d6c..6d913be7 100644 --- a/src/PepperDash.Essentials.Core/Web/RequestHandlers/DisableAllStreamDebugRequestHandler.cs +++ b/src/PepperDash.Essentials.Core/Web/RequestHandlers/DisableAllStreamDebugRequestHandler.cs @@ -1,8 +1,15 @@ using Crestron.SimplSharp.WebScripting; using PepperDash.Core.Web.RequestHandlers; +using PepperDash.Essentials.Core.Web.Attributes; namespace PepperDash.Essentials.Core.Web.RequestHandlers { + [HttpPost] + [OpenApiOperation( + Summary = "DisableAllStreamDebug", + Description = "Disable stream debugging for all devices", + OperationId = "disableAllStreamDebug")] + [OpenApiResponse(200, Description = "Successful response")] public class DisableAllStreamDebugRequestHandler : WebApiBaseRequestHandler { /// diff --git a/src/PepperDash.Essentials.Core/Web/RequestHandlers/DoNotLoadConfigOnNextBootRequestHandler.cs b/src/PepperDash.Essentials.Core/Web/RequestHandlers/DoNotLoadConfigOnNextBootRequestHandler.cs index fdcad73c..c12fa1ad 100644 --- a/src/PepperDash.Essentials.Core/Web/RequestHandlers/DoNotLoadConfigOnNextBootRequestHandler.cs +++ b/src/PepperDash.Essentials.Core/Web/RequestHandlers/DoNotLoadConfigOnNextBootRequestHandler.cs @@ -2,9 +2,19 @@ using Newtonsoft.Json; using PepperDash.Core; using PepperDash.Core.Web.RequestHandlers; +using PepperDash.Essentials.Core.Web.Attributes; namespace PepperDash.Essentials.Core.Web.RequestHandlers { + [HttpGet] + [HttpPost] + [OpenApiOperation( + Summary = "DoNotLoadConfigOnNextBoot", + Description = "Get or set flag to prevent configuration loading on next boot", + OperationId = "doNotLoadConfigOnNextBoot")] + [OpenApiRequestBody(Description = "Configuration loading flag")] + [OpenApiResponse(200, Description = "Successful response", ContentType = "application/json")] + [OpenApiResponse(400, Description = "Bad Request")] public class DoNotLoadConfigOnNextBootRequestHandler : WebApiBaseRequestHandler { /// diff --git a/src/PepperDash.Essentials.Core/Web/RequestHandlers/GetJoinMapForBridgeKeyRequestHandler.cs b/src/PepperDash.Essentials.Core/Web/RequestHandlers/GetJoinMapForBridgeKeyRequestHandler.cs index f2362f4b..d13d2851 100644 --- a/src/PepperDash.Essentials.Core/Web/RequestHandlers/GetJoinMapForBridgeKeyRequestHandler.cs +++ b/src/PepperDash.Essentials.Core/Web/RequestHandlers/GetJoinMapForBridgeKeyRequestHandler.cs @@ -3,9 +3,19 @@ using Crestron.SimplSharp.WebScripting; using Newtonsoft.Json; using PepperDash.Core.Web.RequestHandlers; using PepperDash.Essentials.Core.Bridges; +using PepperDash.Essentials.Core.Web.Attributes; namespace PepperDash.Essentials.Core.Web.RequestHandlers { + [HttpGet] + [OpenApiOperation( + Summary = "GetJoinMapsForBridgeKey", + Description = "Retrieve all join maps for a specific bridge", + OperationId = "getJoinMapForBridge")] + [OpenApiParameter("bridgeKey", Description = "The key of the bridge")] + [OpenApiResponse(200, Description = "Successful response", ContentType = "application/json")] + [OpenApiResponse(400, Description = "Bad Request")] + [OpenApiResponse(404, Description = "Bridge not found")] public class GetJoinMapForBridgeKeyRequestHandler : WebApiBaseRequestHandler { /// diff --git a/src/PepperDash.Essentials.Core/Web/RequestHandlers/GetJoinMapForDeviceKeyRequestHandler.cs b/src/PepperDash.Essentials.Core/Web/RequestHandlers/GetJoinMapForDeviceKeyRequestHandler.cs index 6c669189..4bddd395 100644 --- a/src/PepperDash.Essentials.Core/Web/RequestHandlers/GetJoinMapForDeviceKeyRequestHandler.cs +++ b/src/PepperDash.Essentials.Core/Web/RequestHandlers/GetJoinMapForDeviceKeyRequestHandler.cs @@ -2,9 +2,21 @@ using Newtonsoft.Json; using PepperDash.Core.Web.RequestHandlers; using PepperDash.Essentials.Core.Bridges; +using PepperDash.Essentials.Core.Web.Attributes; namespace PepperDash.Essentials.Core.Web.RequestHandlers { + [HttpGet] + [OpenApiOperation( + Summary = "GetJoinMapsForDeviceKey", + Description = "Retrieve join map for a specific device within a bridge", + OperationId = "getJoinMapForDevice")] + [OpenApiParameter("bridgeKey", Description = "The key of the bridge")] + [OpenApiParameter("deviceKey", Description = "The key of the device")] + [OpenApiResponse(200, Description = "Successful response", ContentType = "application/json")] + [OpenApiResponse(400, Description = "Bad Request")] + [OpenApiResponse(404, Description = "Bridge not found")] + [OpenApiResponse(500, Description = "Device join map not found")] public class GetJoinMapForDeviceKeyRequestHandler : WebApiBaseRequestHandler { /// diff --git a/src/PepperDash.Essentials.Core/Web/RequestHandlers/GetRoutingPortsHandler.cs b/src/PepperDash.Essentials.Core/Web/RequestHandlers/GetRoutingPortsHandler.cs index 6e033f06..12b9c6d3 100644 --- a/src/PepperDash.Essentials.Core/Web/RequestHandlers/GetRoutingPortsHandler.cs +++ b/src/PepperDash.Essentials.Core/Web/RequestHandlers/GetRoutingPortsHandler.cs @@ -1,13 +1,23 @@ using Crestron.SimplSharp.WebScripting; using Newtonsoft.Json; using PepperDash.Core.Web.RequestHandlers; +using PepperDash.Essentials.Core.Web.Attributes; using System.Collections.Generic; using System.Linq; using System.Text; namespace PepperDash.Essentials.Core.Web.RequestHandlers { - public class GetRoutingPortsHandler : WebApiBaseRequestHandler + [HttpGet] + [OpenApiOperation( + Summary = "Get Routing Ports for a device", + Description = "Retrieve routing input and output ports for a specific device", + OperationId = "getDeviceRoutingPorts")] + [OpenApiParameter("deviceKey", Description = "The key of the device")] + [OpenApiResponse(200, Description = "Successful response", ContentType = "application/json")] + [OpenApiResponse(400, Description = "Bad Request")] + [OpenApiResponse(404, Description = "Device not found")] + public class GetRoutingPortsHandler : WebApiBaseRequestHandler { public GetRoutingPortsHandler() : base(true) { } diff --git a/src/PepperDash.Essentials.Core/Web/RequestHandlers/GetTieLinesRequestHandler.cs b/src/PepperDash.Essentials.Core/Web/RequestHandlers/GetTieLinesRequestHandler.cs index fb1db4e7..0cb37ced 100644 --- a/src/PepperDash.Essentials.Core/Web/RequestHandlers/GetTieLinesRequestHandler.cs +++ b/src/PepperDash.Essentials.Core/Web/RequestHandlers/GetTieLinesRequestHandler.cs @@ -1,12 +1,19 @@ using Crestron.SimplSharp.WebScripting; using Newtonsoft.Json; using PepperDash.Core.Web.RequestHandlers; +using PepperDash.Essentials.Core.Web.Attributes; using System.Linq; using System.Text; namespace PepperDash.Essentials.Core.Web.RequestHandlers { - public class GetTieLinesRequestHandler : WebApiBaseRequestHandler + [HttpGet] + [OpenApiOperation( + Summary = "Get TieLines", + Description = "Retrieve a list of all tie lines in the system", + OperationId = "getTieLines")] + [OpenApiResponse(200, Description = "Successful response", ContentType = "application/json")] + public class GetTieLinesRequestHandler : WebApiBaseRequestHandler { public GetTieLinesRequestHandler() : base(true) { } diff --git a/src/PepperDash.Essentials.Core/Web/RequestHandlers/GetTypesByFilterRequestHandler.cs b/src/PepperDash.Essentials.Core/Web/RequestHandlers/GetTypesByFilterRequestHandler.cs index 637c533c..bad0f619 100644 --- a/src/PepperDash.Essentials.Core/Web/RequestHandlers/GetTypesByFilterRequestHandler.cs +++ b/src/PepperDash.Essentials.Core/Web/RequestHandlers/GetTypesByFilterRequestHandler.cs @@ -2,9 +2,19 @@ using Crestron.SimplSharp.WebScripting; using Newtonsoft.Json; using PepperDash.Core.Web.RequestHandlers; +using PepperDash.Essentials.Core.Web.Attributes; namespace PepperDash.Essentials.Core.Web.RequestHandlers { + [HttpGet] + [OpenApiOperation( + Summary = "GetTypesByFilter", + Description = "Retrieve device types filtered by a specific category", + OperationId = "getDeviceTypesByFilter")] + [OpenApiParameter("filter", Description = "The filter criteria for device types")] + [OpenApiResponse(200, Description = "Successful response", ContentType = "application/json")] + [OpenApiResponse(400, Description = "Bad Request")] + [OpenApiResponse(404, Description = "Filtered device types not found")] public class GetTypesByFilterRequestHandler : WebApiBaseRequestHandler { /// diff --git a/src/PepperDash.Essentials.Core/Web/RequestHandlers/GetTypesRequestHandler.cs b/src/PepperDash.Essentials.Core/Web/RequestHandlers/GetTypesRequestHandler.cs index 564cb00d..f87bf5c8 100644 --- a/src/PepperDash.Essentials.Core/Web/RequestHandlers/GetTypesRequestHandler.cs +++ b/src/PepperDash.Essentials.Core/Web/RequestHandlers/GetTypesRequestHandler.cs @@ -2,9 +2,18 @@ using Crestron.SimplSharp.WebScripting; using Newtonsoft.Json; using PepperDash.Core.Web.RequestHandlers; +using PepperDash.Essentials.Core.Web.Attributes; namespace PepperDash.Essentials.Core.Web.RequestHandlers { + [HttpGet] + [OpenApiOperation( + Summary = "GetTypes", + Description = "Retrieve a list of all available device types", + OperationId = "getDeviceTypes")] + [OpenApiResponse(200, Description = "Successful response", ContentType = "application/json")] + [OpenApiResponse(400, Description = "Bad Request")] + [OpenApiResponse(404, Description = "Device factory not found")] public class GetTypesRequestHandler : WebApiBaseRequestHandler { /// diff --git a/src/PepperDash.Essentials.Core/Web/RequestHandlers/SetDeviceStreamDebugRequestHandler.cs b/src/PepperDash.Essentials.Core/Web/RequestHandlers/SetDeviceStreamDebugRequestHandler.cs index fa20145c..fdbd2a8f 100644 --- a/src/PepperDash.Essentials.Core/Web/RequestHandlers/SetDeviceStreamDebugRequestHandler.cs +++ b/src/PepperDash.Essentials.Core/Web/RequestHandlers/SetDeviceStreamDebugRequestHandler.cs @@ -3,9 +3,20 @@ using Crestron.SimplSharp.WebScripting; using Newtonsoft.Json; using PepperDash.Core; using PepperDash.Core.Web.RequestHandlers; +using PepperDash.Essentials.Core.Web.Attributes; namespace PepperDash.Essentials.Core.Web.RequestHandlers { + [HttpPost] + [OpenApiOperation( + Summary = "SetDeviceStreamDebug", + Description = "Configure stream debugging settings for a device", + OperationId = "setDeviceStreamDebug")] + [OpenApiRequestBody(Description = "Device stream debug configuration")] + [OpenApiResponse(200, Description = "Successful response")] + [OpenApiResponse(400, Description = "Bad Request")] + [OpenApiResponse(404, Description = "Device not found")] + [OpenApiResponse(500, Description = "Internal Server Error")] public class SetDeviceStreamDebugRequestHandler : WebApiBaseRequestHandler { ///