Started API, will wait til later

This commit is contained in:
2026-03-22 00:10:42 -04:00
parent 8a771220e4
commit d0839308ef

View File

@@ -1,11 +1,17 @@
using SurrealDb.Net; using SurrealDb.Net;
using SurrealDb.Net.Models.Auth; using SurrealDb.Net.Models.Auth;
using System.Text.Json; 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.Enums;
using RelayCore.Models; using RelayCore.Models;
await using var db = new SurrealDbClient("ws://127.0.0.1:8000/rpc");
await using var db = new SurrealDbClient("ws://127.0.0.1:8000/rpc");
await db.SignIn(new RootAuth { Username = "root", Password = "secret" }); await db.SignIn(new RootAuth { Username = "root", Password = "secret" });
await db.Use("test", "test"); await db.Use("test", "test");
@@ -13,9 +19,13 @@ var keeper = await CreateUserAsync(db, "Keeper317", "Keeper317@gmail.com", "pass
var kira = await CreateUserAsync(db, "Ru_Kira", "jduesling13@gmail.com", "password"); var kira = await CreateUserAsync(db, "Ru_Kira", "jduesling13@gmail.com", "password");
var test = await CreateUserAsync(db, "Test", "test@gmail.com", "password"); var test = await CreateUserAsync(db, "Test", "test@gmail.com", "password");
var server = new Program();
server.Main(db);
Console.WriteLine($"Keeper created: {ToJsonString(keeper)}"); Console.WriteLine($"Keeper created: {ToJsonString(keeper)}");
Console.WriteLine($"Kira created: {ToJsonString(kira)}"); Console.WriteLine($"Kira created: {ToJsonString(kira)}");
Console.WriteLine($"Test created: {ToJsonString(test)}"); Console.WriteLine($"Test created: {ToJsonString(test)}");
Console.ReadKey(true); Console.ReadKey(true);
return; return;
@@ -54,3 +64,51 @@ static async Task<Users> CreateUserAsync(SurrealDbClient db, string username, st
return updated; return updated;
} }
partial class Program
{
public async Task Main(SurrealDbClient db)
{
// Set up listener
using var listener = new HttpListener();
listener.Prefixes.Add("http://localhost:8080/");
listener.Start();
Console.WriteLine("API Started: http://localhost:8080/");
while (true)
{
// Process requests
var context = await listener.GetContextAsync();
var req = context.Request;
var res = context.Response;
if (req.Url.AbsolutePath == "/api/hello" && req.HttpMethod == "GET")
{
var data = new { Message = "Hello, world!", Time = DateTime.Now };
byte[] buf = Encoding.UTF8.GetBytes(JsonSerializer.Serialize(data));
res.ContentType = "application/json";
await res.OutputStream.WriteAsync(buf, 0, buf.Length);
}
if (req.Url.AbsolutePath == "/api/users" && req.HttpMethod == "GET")
{
var data = new { Message = GetDBUsers(db).Result, Time = DateTime.Now };
byte[] buf = Encoding.UTF8.GetBytes(JsonSerializer.Serialize(data));
res.ContentType = "application/json";
await res.OutputStream.WriteAsync(buf, 0, buf.Length);
}
res.Close();
}
}
static async Task<Users[]> GetDBUsers(SurrealDbClient db)
{
var users = await db.Select<Users>("users");
Console.WriteLine(ToJsonString(users));
return users.ToArray();
}
static string ToJsonString(object? o)
{
return JsonSerializer.Serialize(o, new JsonSerializerOptions { WriteIndented = true, });
}
}