feat(http): ArenaTwoPickBattleController (do_matching stub + finish)
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,47 @@
|
||||
using Microsoft.AspNetCore.Mvc;
|
||||
using SVSim.EmulatedEntrypoint.Models.Dtos.Requests.ArenaTwoPick;
|
||||
using SVSim.EmulatedEntrypoint.Models.Dtos.Responses.ArenaTwoPick;
|
||||
using SVSim.EmulatedEntrypoint.Services;
|
||||
|
||||
namespace SVSim.EmulatedEntrypoint.Controllers;
|
||||
|
||||
[Route("arena_two_pick_battle")]
|
||||
public class ArenaTwoPickBattleController : SVSimController
|
||||
{
|
||||
private readonly IArenaTwoPickService _svc;
|
||||
public ArenaTwoPickBattleController(IArenaTwoPickService svc) => _svc = svc;
|
||||
|
||||
[HttpPost("do_matching")]
|
||||
public IActionResult DoMatching([FromBody] DoMatchingRequest req)
|
||||
{
|
||||
if (!TryGetViewerId(out _)) return Unauthorized();
|
||||
return Ok(new DoMatchingResponseDto());
|
||||
}
|
||||
|
||||
[HttpPost("finish")]
|
||||
public async Task<IActionResult> Finish([FromBody] BattleFinishRequest req)
|
||||
{
|
||||
if (!TryGetViewerId(out var vid)) return Unauthorized();
|
||||
try
|
||||
{
|
||||
var result = await _svc.RecordBattleResultAsync(vid, req.BattleResult == 1);
|
||||
return Ok(new BattleFinishResponseDto
|
||||
{
|
||||
BattleResult = result.BattleResult,
|
||||
GetClassExperience = result.GetClassExperience,
|
||||
ClassExperience = result.ClassExperience,
|
||||
ClassLevel = result.ClassLevel,
|
||||
SpotPointInfo = new SpotPointInfoDto
|
||||
{
|
||||
BeforeSpotPoint = result.BeforeSpotPoint,
|
||||
AddSpotPoint = result.AddSpotPoint,
|
||||
AfterSpotPoint = result.AfterSpotPoint,
|
||||
},
|
||||
});
|
||||
}
|
||||
catch (ArenaTwoPickException ex)
|
||||
{
|
||||
return BadRequest(new { error_code = ex.ErrorCode });
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user