diff --git a/README.md b/README.md index 398a3b6..43168e0 100644 --- a/README.md +++ b/README.md @@ -34,3 +34,13 @@ And enable WebAssembly: ```bash dotnet workload install wasi-experimental ``` + +```bash +bun server:up +``` + +Add the spacetime docker server to your cli + +```bash +spacetime server add --url http://localhost:3000 massive +``` diff --git a/server/Lib.cs b/server/Lib.cs index 044257e..19f8d61 100644 --- a/server/Lib.cs +++ b/server/Lib.cs @@ -8,6 +8,7 @@ public static partial class Module [PrimaryKey] public Identity Identity; public string? Name; + public string? Color; public bool Online; } @@ -42,6 +43,30 @@ public static partial class Module return name; } + [Reducer] + public static void SetColor(ReducerContext ctx, string color) + { + color = ValidateColor(color); + + var user = ctx.Db.User.Identity.Find(ctx.Sender); + + if (user is null) + { + return; + } + user.Color = color; + ctx.Db.User.Identity.Update(user); + } + + private static string ValidateColor(string color) + { + if (color[0] == '#' && color.Length != 4 || color.Length != 7) + { + throw new Exception("Invalid Hex color code"); + } + return color; + } + [Reducer] public static void SendMessage(ReducerContext ctx, string text) { @@ -113,4 +138,3 @@ public static partial class Module } } } -