controller(card): POST /card/protect

This commit is contained in:
gamer147
2026-05-28 01:56:47 -04:00
parent ecf819ca61
commit 1ee31c1689
3 changed files with 51 additions and 0 deletions

View File

@@ -132,6 +132,24 @@ public class CardController : SVSimController
_ => "malformed_request",
};
[HttpPost("protect")]
public async Task<ActionResult<CardProtectResponse>> Protect(CardProtectRequest request)
{
if (!TryGetViewerId(out long viewerId)) return Unauthorized();
var outcome = await _inventory.SetProtected(viewerId, request.CardId, request.IsProtected);
if (!outcome.IsSuccess)
{
return outcome.Error switch
{
ProtectError.UnknownCard => BadRequest(new { error = "unknown_card" }),
_ => BadRequest(new { error = "malformed_request" }),
};
}
return new CardProtectResponse();
}
private static string ErrorKey(DestructError error) => error switch
{
DestructError.UnknownCard => "unknown_card",