public async Task <OneOf <AniListAuthorizationResponse, IAniListError> > AuthenticateUser(IAniListAuthConfig config, string code, CancellationToken cToken) { var client = _httpClientFactory.CreateClient(); try { var response = await client.PostAsync(config.AuthTokenUri, new FormUrlEncodedContent(new[] { new KeyValuePair <string, string>("client_id", config.ClientId), new KeyValuePair <string, string>("client_secret", config.ClientSecret), new KeyValuePair <string, string>("grant_type", "authorization_code"), new KeyValuePair <string, string>("redirect_uri", config.RedirectUri), new KeyValuePair <string, string>("code", code) })); response.EnsureSuccessStatusCode(); var responseContent = await response.Content.ReadAsStringAsync(); return(JsonConvert.DeserializeObject <AniListAuthorizationResponse>(responseContent)); } catch (Exception e) { return(new AniListError(0, e.Message, e, null)); } }
public LoginPresenter(IAniListService service, IAniDroidSettings settings, IAniListAuthConfig authConfig, IAniDroidLogger logger) : base(service, settings, logger) { _authConfig = authConfig; }