using System; using System.Collections.Generic; using System.IO; using System.Linq; using System.Net.Http; using System.Reflection; using System.Threading.Tasks; using Microsoft.AspNetCore.Http; using Microsoft.AspNetCore.Mvc; using Newtonsoft.Json; using Newtonsoft.Json.Linq; using TOOHUCardAPI.Data; using TOOHUCardAPI.Models; namespace TOOHUCardAPI.Controllers { [Route("api/[controller]")] [ApiController] public class PlayerDataController : MethodBasedController { /** * The game uses a single endpoint for player data. * The object they send has a method field that's used to decide what's being done * So let's use a single entry point and redirect based on that */ [HttpPost] public async Task EntryPoint([FromBody] object bodyObj) { string body = JsonConvert.SerializeObject(bodyObj); JObject request = JObject.Parse(body); string method = request["method"].ToString(); return await InvokeEndpointHandlerForMethod(this, method, body); } [EndpointHandler("get")] private async Task GetDummy(string body) { PlayerDataGetRequestObject requestObject = JsonConvert.DeserializeObject(body); PlayerDataGetResponseObject response = new PlayerDataGetResponseObject(requestObject.Ids.Keys.Count); return response; } } }