Files
Relay/RelayCore/Program.cs
2026-03-21 04:45:49 -04:00

56 lines
1.7 KiB
C#

using SurrealDb.Net;
using SurrealDb.Net.Models.Auth;
using System.Text.Json;
using RelayCore.Enums;
using RelayCore.Models;
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");
var keeper = await CreateUserAsync(db, "Keeper317", "Keeper317@gmail.com", "password");
var kira = await CreateUserAsync(db, "Ru_Kira", "jduesling13@gmail.com", "password");
var test = await CreateUserAsync(db, "Test", "test@gmail.com", "password");
Console.WriteLine($"Keeper created: {ToJsonString(keeper)}");
Console.WriteLine($"Kira created: {ToJsonString(kira)}");
Console.WriteLine($"Test created: {ToJsonString(test)}");
Console.ReadKey(true);
return;
static string ToJsonString(object? o)
{
return JsonSerializer.Serialize(o, new JsonSerializerOptions { WriteIndented = true });
}
static async Task<Users> CreateUserAsync(SurrealDbClient db, string username, string email, string rawPassword)
{
var now = DateTime.UtcNow;
var user = new Users
{
Username = username,
Email = email,
CreatedAt = now,
UpdatedAt = now,
LastLogin = now,
TwoFactorEnabled = false,
EmailVerified = false,
AccountStatus = (int)AccountStatuses.Active,
OnlineStatus = (int)OnlineStatuses.Online,
};
var created = await db.Create("users", user);
var hasher = new PasswordHasher();
var passwordHash = hasher.HashPassword(created.Id.ToString() + rawPassword);
var updated = await db.Merge<PasswordHash, Users>(new PasswordHash
{
Id = created.Id,
Password = passwordHash
});
return updated;
}