From 2d321a3d53dddc0a6dff3414061379fa597dad11 Mon Sep 17 00:00:00 2001 From: Benjamin Palko Date: Thu, 22 May 2025 14:19:37 -0400 Subject: [PATCH] add color to server --- server/Lib.cs | 28 +++++++++++++++++++++++++++- 1 file changed, 27 insertions(+), 1 deletion(-) diff --git a/server/Lib.cs b/server/Lib.cs index 044257e..735a59e 100644 --- a/server/Lib.cs +++ b/server/Lib.cs @@ -1,3 +1,4 @@ +using System.Text.RegularExpressions; using SpacetimeDB; public static partial class Module @@ -8,6 +9,7 @@ public static partial class Module [PrimaryKey] public Identity Identity; public string? Name; + public string? Color; public bool Online; } @@ -42,6 +44,31 @@ 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) + { + var regex = new Regex("^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$"); + if (regex.IsMatch(color)) + { + throw new Exception("Invalid color code"); + } + return color; + } + [Reducer] public static void SendMessage(ReducerContext ctx, string text) { @@ -113,4 +140,3 @@ public static partial class Module } } } -