Example #1
0
        public async Task <IActionResult> GetToken([FromBody] TodoistTokenRequest request, [FromServices] ITodoistTokenQuery query)
        {
            TodoistTokenResponse result = await query.RunAsync(request.Code);

            return(string.IsNullOrWhiteSpace(result.Error)
                ? (IActionResult)Ok(result)
                : BadRequest(result));
        }
Example #2
0
        public async Task <TodoistTokenResponse> RunAsync(string code)
        {
            var request = new
            {
                client_id     = _configuration["TodoistClientId"],
                client_secret = _configuration["TodoistClientSecret"],
                code
            };
            var client   = new HttpClient();
            var content  = new StringContent(JsonConvert.SerializeObject(request), Encoding.UTF8, "application/json");
            var response = await client.PostAsync("https://todoist.com/oauth/access_token", content);

            var result = await response.Content.ReadAsStringAsync();

            TodoistTokenResponse typedResponse = JsonConvert.DeserializeObject <TodoistTokenResponse>(result, new JsonSerializerSettings {
                ContractResolver = new SnakeCasePropertyNamesContractResolver()
            });

            return(typedResponse);

            ;
        }