using System.Text.Json; using Gott.Extensions; using Gott.Services; using Microsoft.AspNetCore.Builder; using Microsoft.AspNetCore.Http; using Microsoft.AspNetCore.Routing; namespace Gott.Endpoints; public static class SettingsEndpoint { public static void MapSettingsEndpoints(this WebApplication app) { app.MapGet("/api/settings", HandleGet); app.MapPut("/api/settings", HandleUpdate); } private static async System.Threading.Tasks.Task HandleGet(HttpContext ctx, DatabaseService db) { var userId = ctx.GetUserId(); var json = await db.GetUserSettings(userId); ctx.Response.ContentType = "application/json"; await ctx.Response.WriteAsync(json ?? "{}"); } private static async System.Threading.Tasks.Task HandleUpdate(HttpContext ctx, DatabaseService db) { var userId = ctx.GetUserId(); var body = await JsonSerializer.DeserializeAsync(ctx.Request.Body); var json = body.ToString(); await db.UpdateUserSettings(userId, json); ctx.Response.ContentType = "application/json"; await ctx.Response.WriteAsync(json); } }