diff --git a/src/ReC.Application/Common/HttpExtensions.cs b/src/ReC.Application/Common/HttpExtensions.cs index b24f6b4..6f3b4b0 100644 --- a/src/ReC.Application/Common/HttpExtensions.cs +++ b/src/ReC.Application/Common/HttpExtensions.cs @@ -1,11 +1,17 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; - -namespace ReC.Application.Common; +namespace ReC.Application.Common; public static class HttpExtensions { + public static HttpMethod ToHttpMethod(this string method) => method.ToUpper() switch + { + "GET" => HttpMethod.Get, + "POST" => HttpMethod.Post, + "PUT" => HttpMethod.Put, + "DELETE" => HttpMethod.Delete, + "PATCH" => HttpMethod.Patch, + "HEAD" => HttpMethod.Head, + "OPTIONS" => HttpMethod.Options, + "TRACE" => HttpMethod.Trace, + _ => throw new ArgumentException($"Invalid HTTP method: {method}", nameof(method)), + }; } diff --git a/src/ReC.Application/RecActions/Commands/InvokeRecActionCommand.cs b/src/ReC.Application/RecActions/Commands/InvokeRecActionCommand.cs index 431490c..adf3d0e 100644 --- a/src/ReC.Application/RecActions/Commands/InvokeRecActionCommand.cs +++ b/src/ReC.Application/RecActions/Commands/InvokeRecActionCommand.cs @@ -1,5 +1,6 @@ using MediatR; using Microsoft.Extensions.Logging; +using ReC.Application.Common; using ReC.Application.Common.Dto; namespace ReC.Application.RecActions.Commands; @@ -35,8 +36,7 @@ public class InvokeRecActionCommandHandler( return; } - var method = new HttpMethod(request.RestType.ToUpper()); - using var msg = new HttpRequestMessage(method, request.EndpointUri); + using var msg = new HttpRequestMessage(request.RestType.ToHttpMethod(), request.EndpointUri); using var response = await http.SendAsync(msg, cancel); var body = await response.Content.ReadAsStringAsync(cancel);