Files
chess/TURN.Services.Chess/Controllers/TurnController.cs
T
2023-06-25 18:36:27 +02:00

68 lines
1.9 KiB
C#

namespace TURN.Services.Chess.Controllers
{
[Authorize(AuthenticationSchemes = AuthSchemes, Roles = "admin")]
[Route("/[controller]")]
[ApiController]
public class TurnController : ControllerBase
{
public const string AuthSchemes = JwtBearerDefaults.AuthenticationScheme;
private readonly ModelBaseContext _db;
private readonly Logger _logger;
public TurnController(ModelBaseContext db, Logger logger)
{
_db = db;
_logger = logger;
}
/// <summary>
/// Тестовый гет.
/// </summary>
[HttpGet("test/{param}")]
public ActionResult<string> Get(string param)
{
try
{
ChessGame game = new();
return Ok(param);
}
catch (Exception ex)
{
_logger.Error(ex);
return StatusCode(500, $"Internal server error: {ex.Message}");
}
}
/// <summary>
/// Создать игру.
/// </summary>
[HttpGet("startgame/{blackUser}/{whiteUser}")]
public ActionResult<string> StartGame(string blackUser, string whiteUser)
{
try
{
ChessGame game = new();
Game obj = new()
{
BlackUserName = blackUser,
WhiteUserName = whiteUser,
StartDate = DateTimeOffset.Now.ToUnixTimeSeconds().ToString()
};
_ = _db.Add(obj);
_ = _db.SaveChanges();
return Ok($"Game {obj.GameId} started.");
}
catch (Exception ex)
{
_logger.Error(ex);
return StatusCode(500, $"Internal server error: {ex.Message}");
}
}
}
}