Example #1
0
        public ActionResult <Score> SubmitSolution(Guid id, [FromBody] MazeFE userSolution)
        {
            _logger.LogInformation("POST request to submit a solution for maze with Id {0}\n\n", id);

            IDictionary <string, object> payload;

            try
            {
                var accessToken = Request.Headers["Bearer"];
                payload = Authorize(accessToken);
            }
            catch (ApiException e)
            {
                return(Unauthorized(new UnauthorizedError(e.Message)));
            }

            try
            {
                Score score = _mazeService.Submit(id, (string)payload["userId"], userSolution);
                return(Ok(score));
            }
            catch (ApiException e)
            {
                if (e.StatusCode == 403)
                {
                    return(StatusCode(403, new ForbiddenError(e.Message)));
                }

                return(BadRequest(new BadRequestError(e.Message)));
            }
        }