using Microsoft.AspNetCore.Mvc; using RecRoomArchive.Models.API.Avatar; using RecRoomArchive.Models.API.Setting; using RecRoomArchive.Services; using System.Text.Json; namespace RecRoomArchive.Controllers.API.Settings.V2 { [Route(template: "api/[controller]/v2")] [ApiController] public class SettingsController(FileService fileService) : ControllerBase { [HttpGet] public async Task>> GetSettings() { var settingsData = fileService.GetData("settings.json"); if (string.IsNullOrWhiteSpace(settingsData)) { return Ok(new List()); } var settings = JsonSerializer.Deserialize>(settingsData); return Ok(settings); } [HttpPost(template: "set")] public async Task SetSetting(Setting setting) { var settingsData = fileService.GetData("settings.json"); var settings = string.IsNullOrWhiteSpace(settingsData) ? [] : JsonSerializer.Deserialize>(settingsData) ?? []; settings.RemoveAll(x => x.Key == setting.Key); settings.Add(setting); fileService.SetData("settings.json", JsonSerializer.Serialize(settings)); return Ok(); } } }