using System.Collections.Generic; using System.Web.Http; using QuadMasterClassLib; using WebSite.Managers; namespace WebSite.Controllers { public class GameController : ApiController { private GameManager gameManager; private LoginManager loginManager; public GameController() { gameManager = new GameManager(); loginManager = new LoginManager(); } //Get all games // GET /api/game/ public List Get() { var list = new List(); if(ControllerContext.Request.Headers.Authorization == null) { //No auth list.Add(new QMGameResponse{Error = 2}); return list; } if (!loginManager.VerifyLogin(ControllerContext.Request.Headers.Authorization.Parameter)) { //Failed login list.Add(new QMGameResponse{Error = 1}); return list; } string username; string password; LoginManager.DecodeBase64(ControllerContext.Request.Headers.Authorization.Parameter, out username, out password); return gameManager.GetActiveGames(username); } //Get game // GET /api/game/gameId public QMGameResponse Get(int gameId) { string username; string password; LoginManager.DecodeBase64(ControllerContext.Request.Headers.Authorization.Parameter, out username, out password); if (!loginManager.VerifyLogin(ControllerContext.Request.Headers.Authorization.Parameter)) { //return new List(); } return gameManager.GetGame(gameId, username); } //Join random game // Post /api/game/playerId public void Post(int id) { if (ControllerContext.Request.Headers.Authorization == null) { //No auth } if (!loginManager.VerifyLogin(ControllerContext.Request.Headers.Authorization.Parameter)) { //Failed login } string username; string password; LoginManager.DecodeBase64(ControllerContext.Request.Headers.Authorization.Parameter, out username, out password); gameManager.JoinRandomGame(username); } //Make Move // POST /api/game public void Post(QMGameResponse value) { gameManager.MakeMove(value); } //Drop table // DELETE /api/game/ public void Delete(string playerId) { gameManager.CreateTables(); } } }