implemented unit movement

This commit is contained in:
hz
2026-05-19 05:29:51 -05:00
parent b0b270f4d8
commit 14e2c26e74
6 changed files with 247 additions and 6 deletions
@@ -59,4 +59,34 @@ public class UnitsController : ControllerBase
return BadRequest(new { error = ex.Message });
}
}
[Authorize(Roles = "USER,SUPER")]
[HttpPost("move")]
public async Task<ActionResult<List<UnitInstanceResponse>>> Move([FromBody] MoveUnitSquadRequest request)
{
var username = User.FindFirstValue(ClaimTypes.Name);
if (string.IsNullOrWhiteSpace(username))
{
return Unauthorized();
}
try
{
var units = await _units.MoveSquadAsync(username, request);
if (units.Count == 0)
{
return BadRequest(new { error = "No matching units are available to move." });
}
return Ok(units.Select(UnitInstanceResponse.FromUnit).ToList());
}
catch (ArgumentException ex)
{
return BadRequest(new { error = ex.Message });
}
catch (InvalidOperationException ex)
{
return BadRequest(new { error = ex.Message });
}
}
}