using VPNAuth.Server.Database; namespace VPNAuth.Server.Api; public static class UserInterface { public static async Task UserSettingsHandler(HttpContext context) { using var db = new Database.Database(); ConfigUser? configUser = context.GetUser(); if (configUser == null) { context.Response.StatusCode = StatusCodes.Status401Unauthorized; } UserInformation? userInformation = db.UserInformation .Where(user => user.Sub == configUser!.Username) .ToList() .FirstOrDefault() ?? db.Add(new UserInformation { Sub = configUser!.Username }).Entity; if (context.Request.Form.ContainsKey("given-name")) userInformation.GivenName = context.Request.Form["given-name"]!; if (context.Request.Form.ContainsKey("family-name")) userInformation.FamilyName = context.Request.Form["family-name"]!; if (context.Request.Form.ContainsKey("preferred-username")) userInformation.PreferredUsername = context.Request.Form["preferred-username"]!; if (context.Request.Form.ContainsKey("email")) userInformation.Email = context.Request.Form["email"]!; if (context.Request.Form.ContainsKey("picture")) userInformation.Picture = context.Request.Form["picture"]!; userInformation.Name = userInformation.GivenName + " " + userInformation.FamilyName; db.SaveChanges(); } }