using System; using System.Collections.Generic; using System.Linq; using System.Net; using System.Net.Http; using System.Threading.Tasks; using Microsoft.AspNetCore.Mvc; using Microsoft.Extensions.Logging; using ProjectGrid.Data; using ProjectGrid.Models; namespace ProjectGrid.Controllers { [ApiController] public class TicTacTocController : ControllerBase { private readonly ILogger _logger; private readonly TicTacTocManager _manager; public TicTacTocController(ILogger logger, TicTacTocManager manager) { _logger = logger; _manager = manager; } [HttpGet] [Route("api/ttt/GetBoard")] public TicTacTocResponse GetBoard() { _logger.LogTrace("GetBoard called."); return _manager.GetBoard(); } [HttpGet] [Route("api/ttt/Restart")] public void RestartGame(TicTacToc.Mode mode = TicTacToc.Mode.CROSS_PLAYER) { _logger.LogTrace("RestartGame called."); _manager.Restart(mode); } [HttpPost] [Route("api/ttt/SetPiece")] [Consumes("application/json")] public TicTacTocResponse PostMove(TicTacTocRequest move) { _logger.LogTrace($"PostMove called. {move.DebugString()}"); return _manager.NextMove(move); } } }