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<QMGameResponse> Get()
{
var list = new List<QMGameResponse>();
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<QMGameResponse>();
}
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();
}
}
}