abstract class replaced with IRouteHandler interface
This commit is contained in:
parent
448161239e
commit
29cde170c6
@ -1,6 +1,6 @@
|
||||
namespace DTLib.Web.Routes;
|
||||
|
||||
public class DelegateRouteHandler(Func<HttpListenerContext, Task<HttpStatusCode>> routeHandler) : RouteHandler
|
||||
public class DelegateRouteHandler(Func<HttpListenerContext, Task<HttpStatusCode>> routeHandler) : IRouteHandler
|
||||
{
|
||||
public override Task<HttpStatusCode> HandleRequest(HttpListenerContext ctx) => routeHandler(ctx);
|
||||
public Task<HttpStatusCode> HandleRequest(HttpListenerContext ctx) => routeHandler(ctx);
|
||||
}
|
||||
6
DTLib.Web/Routes/IRouteHandler.cs
Normal file
6
DTLib.Web/Routes/IRouteHandler.cs
Normal file
@ -0,0 +1,6 @@
|
||||
namespace DTLib.Web.Routes;
|
||||
|
||||
public interface IRouteHandler
|
||||
{
|
||||
public Task<HttpStatusCode> HandleRequest(HttpListenerContext ctx);
|
||||
}
|
||||
@ -1,6 +0,0 @@
|
||||
namespace DTLib.Web.Routes;
|
||||
|
||||
public abstract class RouteHandler
|
||||
{
|
||||
public abstract Task<HttpStatusCode> HandleRequest(HttpListenerContext ctx);
|
||||
}
|
||||
@ -1,8 +1,8 @@
|
||||
namespace DTLib.Web.Routes;
|
||||
|
||||
public class ServeFilesRouteHandler(IOPath _publicDir, string _homePageUrl = "index.html") : RouteHandler
|
||||
public class ServeFilesRouteHandler(IOPath _publicDir, string _homePageUrl = "index.html") : IRouteHandler
|
||||
{
|
||||
public override async Task<HttpStatusCode> HandleRequest(HttpListenerContext ctx)
|
||||
public async Task<HttpStatusCode> HandleRequest(HttpListenerContext ctx)
|
||||
{
|
||||
if (ctx.Request.HttpMethod != "GET")
|
||||
return HttpStatusCode.BadRequest;
|
||||
|
||||
@ -3,9 +3,9 @@ namespace DTLib.Web.Routes;
|
||||
public class SimpleRouter : IRouter
|
||||
{
|
||||
/// route for any url that doesn't have its own handler
|
||||
public RouteHandler? DefaultRoute { get; set; }
|
||||
public IRouteHandler? DefaultRoute { get; set; }
|
||||
|
||||
private readonly Dictionary<string, RouteHandler> _routes = new();
|
||||
private readonly Dictionary<string, IRouteHandler> _routes = new();
|
||||
private readonly ILogger _logger;
|
||||
|
||||
public SimpleRouter(ILogger logger)
|
||||
@ -13,7 +13,7 @@ public class SimpleRouter : IRouter
|
||||
_logger = logger;
|
||||
}
|
||||
|
||||
public void MapRoute(string url, HttpMethod method, RouteHandler route) => _routes.Add($"{url}:{method}", route);
|
||||
public void MapRoute(string url, HttpMethod method, IRouteHandler route) => _routes.Add($"{url}:{method}", route);
|
||||
|
||||
public void MapRoute(string url, HttpMethod method, Func<HttpListenerContext, Task<HttpStatusCode>> route)
|
||||
=> MapRoute(url, method, new DelegateRouteHandler(route));
|
||||
|
||||
Loading…
Reference in New Issue
Block a user