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 } } } -