Started API, will wait til later
This commit is contained in:
@@ -1,11 +1,17 @@
|
||||
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;
|
||||
|
||||
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.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 test = await CreateUserAsync(db, "Test", "test@gmail.com", "password");
|
||||
|
||||
var server = new Program();
|
||||
server.Main(db);
|
||||
|
||||
Console.WriteLine($"Keeper created: {ToJsonString(keeper)}");
|
||||
Console.WriteLine($"Kira created: {ToJsonString(kira)}");
|
||||
Console.WriteLine($"Test created: {ToJsonString(test)}");
|
||||
|
||||
Console.ReadKey(true);
|
||||
return;
|
||||
|
||||
@@ -53,4 +63,52 @@ static async Task<Users> CreateUserAsync(SurrealDbClient db, string username, st
|
||||
});
|
||||
|
||||
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, });
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user