ProjectGrid/Controllers/TicTacTocController.cs

54 lines
1.3 KiB
C#

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<TicTacTocController> _logger;
private readonly CreeperMapManager _manager;
public TicTacTocController(ILogger<TicTacTocController> logger, CreeperMapManager 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()
{
_logger.LogTrace("RestartGame called.");
_manager.Restart();
}
[HttpPost]
[Route("api/ttt/SetPiece")]
[Consumes("application/json")]
public TicTacTocResponse PostMove(TicTacTocRequest move)
{
_logger.LogTrace($"PostMove called. {move.DebugString()}");
return _manager.NextMove(move);
}
}
}