public async Task <JsonResult> AuthenticateUser([FromBody] AuthenticateUserRequest request)
        {
            if (request == null)
            {
                throw new ArgumentNullException($"Request {nameof(request)} should be not null.");
            }

            try
            {
                var player = await _playerService.AuthenticateUserAsync(request.Name);

                var response = new AuthenticateUserResponse
                {
                    Token  = player.Token,
                    Reward = player.Reward,
                    Scores = player.Scores
                };

                return(this.JsonApi(response));
            }
            catch (PlayerException exception)
            {
                return(this.JsonApi(exception));
            }
        }