From 33eee17c43e924aeda73beb76aa59e03ac9a56fa Mon Sep 17 00:00:00 2001 From: Cody Larkin Date: Thu, 30 Apr 2026 19:08:37 -0400 Subject: [PATCH] Beginnings of Core Auth --- RelayCore/Endpoints/AuthEndpoints.cs | 57 ++++++++++++++++++++++++++++ RelayCore/Program.cs | 24 +++++++++--- RelayCore/RelayCore.csproj | 7 +--- RelayCore/Services/APIAuthService.cs | 20 ++++++++++ 4 files changed, 98 insertions(+), 10 deletions(-) create mode 100644 RelayCore/Endpoints/AuthEndpoints.cs create mode 100644 RelayCore/Services/APIAuthService.cs diff --git a/RelayCore/Endpoints/AuthEndpoints.cs b/RelayCore/Endpoints/AuthEndpoints.cs new file mode 100644 index 0000000..47ff950 --- /dev/null +++ b/RelayCore/Endpoints/AuthEndpoints.cs @@ -0,0 +1,57 @@ +using RelayCore.Services; + +namespace RelayCore.Endpoints; + +public static class AuthEndpoints +{ + public static void MapAuthEndpoints(this WebApplication app) + { + app.MapPost("/user/signin", async (AuthSignin request, APIAuthService service) => + { + var token = await service.UserSigninAsync(request); + + return token != null ? Results.Ok(token) : Results.Unauthorized(); + }); + app.MapPost("/user/register", async (AuthRegister request, APIAuthService service) => + { + throw new NotImplementedException(); + return Results.Ok(); + }); + app.MapPost("/server/verify/user", async (AuthUserVerify request, APIAuthService service) => + { + throw new NotImplementedException(); + }); + app.MapPost("/server/user/profile", async (AuthUserVerify request, APIAuthService service) => + { + throw new NotImplementedException(); + }); + app.MapPost("/server/verify/license", async (AuthServerLicense request, APIAuthService service) => + { + throw new NotImplementedException(); + }); + } +} + +public class AuthSignin +{ + public string UserName { get; set; } + public string Password { get; set; } +} + +public class AuthRegister +{ + public string Username { get; set; } + public string Password { get; set; } + public string Email { get; set; } +} + +public class AuthUserVerify +{ + public string Username { get; set; } + public string Token { get; set; } +} + +public class AuthServerLicense +{ + public string License { get; set; } +} \ No newline at end of file diff --git a/RelayCore/Program.cs b/RelayCore/Program.cs index d7a0e2d..b1bb2d4 100644 --- a/RelayCore/Program.cs +++ b/RelayCore/Program.cs @@ -1,14 +1,13 @@ using SurrealDb.Net; using SurrealDb.Net.Models.Auth; using System.Text.Json; -using System; using System.Net; -using System.Threading.Tasks; using System.Text; -using System.Text.Json; using RelayCore.Enums; using RelayCore.Models; +using RelayCore.Endpoints; +using RelayCore.Services; await using var db = new SurrealDbClient("ws://127.0.0.1:8000/rpc"); @@ -25,8 +24,24 @@ Console.WriteLine($"Keeper created: {ToJsonString(keeper)}"); Console.WriteLine($"Kira created: {ToJsonString(kira)}"); Console.WriteLine($"Test created: {ToJsonString(test)}"); -await server.Main(db); +var builder = WebApplication.CreateBuilder(args); +builder.Services.AddSingleton(db); +builder.Services.AddScoped(); + +var app = builder.Build(); +app.MapGet("/", () => "Auth Server Running!"); +app.MapAuthEndpoints(); + +// await server.Main(db); + +await app.StartAsync(); +Console.WriteLine("API Started"); +Console.WriteLine("\n\n\n"); + +Console.Write("Press any key to stop."); Console.ReadKey(true); + +await app.StopAsync(); return; static string ToJsonString(object? o) @@ -65,7 +80,6 @@ static async Task CreateUserAsync(SurrealDbClient db, string username, st return updated; } - partial class Program { public async Task Main(SurrealDbClient db) diff --git a/RelayCore/RelayCore.csproj b/RelayCore/RelayCore.csproj index 94ae57d..3b7c5c1 100644 --- a/RelayCore/RelayCore.csproj +++ b/RelayCore/RelayCore.csproj @@ -1,4 +1,4 @@ - + Exe @@ -10,11 +10,8 @@ + - - - - diff --git a/RelayCore/Services/APIAuthService.cs b/RelayCore/Services/APIAuthService.cs new file mode 100644 index 0000000..481bf6c --- /dev/null +++ b/RelayCore/Services/APIAuthService.cs @@ -0,0 +1,20 @@ +using RelayCore.Endpoints; +using SurrealDb.Net; + +namespace RelayCore.Services; + +public class APIAuthService(SurrealDbClient db) +{ + private readonly SurrealDbClient _db = db; + + + public async Task GetUsersAsync() + { + throw new NotImplementedException(); + } + + public async Task UserSigninAsync(AuthSignin request) + { + throw new NotImplementedException(); + } +} \ No newline at end of file