Add remaining project files

This commit is contained in:
Marco Baldwin
2026-07-23 18:21:43 -07:00
parent c12d8ac35d
commit 6e15e89a9d
453 changed files with 64265 additions and 0 deletions
+88
View File
@@ -0,0 +1,88 @@
using DeluxeBackend.Models;
using DeluxeBackend.Services;
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.Mvc;
using Newtonsoft.Json.Linq;
using System.ComponentModel.DataAnnotations;
namespace DeluxeBackend.Controllers
{
[Route("PlayerSettings")]
[ApiController]
public class PlayerSettingsController : ControllerBase
{
private readonly IJwtService jwt;
private readonly ILiteDbService db;
public PlayerSettingsController(IJwtService _jwt, ILiteDbService _db)
{
jwt = _jwt;
db = _db;
}
private Dictionary<string, string> SettingRoomToDictionary(AccountSetting setting)
{
return new Dictionary<string, string>
{
["Key"] = setting.Key,
["Value"] = setting.Value
};
}
[HttpGet("playersettings")]
[Authorize(Roles = "gameClient")]
public async Task<IActionResult> Get()
{
Account? account = await jwt.GetLogin(User);
if (account == null)
{
return NotFound("User not found in database");
}
return Ok(db.Settings.Find(x => x.Account.Id == account.Id).Select(p => SettingRoomToDictionary(p)).ToList());
}
[HttpPut("playersettings")]
[Authorize(Roles = "gameClient")]
public async Task<IActionResult> Put([FromForm] string key, [FromForm] string value)
{
Account? account = await jwt.GetLogin(User);
if (account == null)
{
return NotFound("User not found in database");
}
AccountSetting setting = db.Settings.FindOne(x => x.Account.Id == account.Id && x.Key == key);
if (setting == null)
{
setting = new AccountSetting() { Account=account, Key=key, Value=value};
}
else
{
setting.Value = value;
}
db.Settings.Upsert(setting);
return Ok(new { Success = true });
}
[HttpDelete("playersettings")]
[Authorize(Roles = "gameClient")]
public async Task<IActionResult> Delete([FromForm] string key)
{
Account? account = await jwt.GetLogin(User);
if (account == null)
{
return NotFound("User not found in database");
}
AccountSetting setting = db.Settings.FindOne(x => x.Account.Id == account.Id && x.Key == key);
if (setting == null)
{
return NotFound("Key not found");
}
return Ok(new { Success = db.Settings.Delete(setting.Id) });
}
}
}