using Microsoft.Extensions.Primitives; using RelayCore.Services; using RelayShared.Services; namespace RelayCore.Endpoints; public static class AuthEndpoints { public static void MapAuthEndpoints(this WebApplication app) { app.MapPost("/user/signin", async (AuthSignin request, APIAuthService service, HttpContext context) => { string ip = ""; StringValues userAgent = ""; if (context != null) { ip = context.Connection.RemoteIpAddress?.MapToIPv4().ToString(); context.Request.Headers.TryGetValue("User-Agent", out userAgent); } var token = await service.UserSigninAsync(request, ip, userAgent.ToString()); return token != null ? Results.Ok(token) : Results.Unauthorized(); }); app.MapGet("/users", async (APIAuthService service) => { return Results.Ok(await service.GetUsersAsync()); }); app.MapPost("/user/register", async (AuthRegister request, APIAuthService service, HttpContext context) => { var ip = context.Connection.RemoteIpAddress?.MapToIPv4().ToString(); context.Request.Headers.TryGetValue("User-Agent", out var userAgent); var token = await service.UserRegisterAsync(request, ip, userAgent); return token != null ? Results.Ok(token) : Results.Ok("Username or Email already exists!"); }); app.MapPost("/user/isAlive", async (AuthSignin request, HttpContext context) => { var ip = context.Connection.RemoteIpAddress?.MapToIPv4().ToString(); context.Request.Headers.TryGetValue("User-Agent", out var userAgent); Console.WriteLine($"UN: {request.UserName}\nToken: {request.Password}\nIP: {ip}\nUserAgent: {userAgent}"); return Results.Ok(); }); app.MapPost("/server/verify/user", async (AuthUserVerify request, APIAuthService service) => { bool valid = await service.ServerVerifyUser(request); Console.WriteLine($"UN: {request.Username}\nToken: {request.Token}"); return Results.Ok(valid); }); app.MapPost("/server/verify/license", async (AuthServerLicense request, APIAuthService service) => { throw new NotImplementedException(); }); } }