protected Task <IFlurlRequest> CreateRequest(IEnumerable <KeyValuePair <string, object> > parameters = null, CancellationToken cancellation = default, params object[] urlSegments)
 => _authClient.AuthenticateAsync(cancellation)
 .ThenAsync(accessToken => ClientFactory.Get(ClientConfig.BaseUrl)
            .Request(urlSegments)
            .SetQueryParams(parameters)
            .WithTimeout(TimeSpan.FromSeconds(60))
            .WithOAuthBearerToken(accessToken));
Exemplo n.º 2
0
        public async Task <string> ImportBank(long id, CancellationToken cancellationToken = default)
        {
            var sessionConfiguration = await BuildUserSessionConfiguration(cancellationToken);

            var client  = _flurlClientFactory.Get(_baseUrl);
            var request = client.Request("/bankConnections/import")
                          .AddAuthorizationHeader(sessionConfiguration.AccessToken);

            try
            {
                var accountTypes = new List <string>
                {
                    "Checking", "Savings", "CreditCard", "Security", "Loan", "Pocket", "Membership", "Bausparen"
                };

                var importBankPayload = new FinImportBankRequest(id, "Test connection new", "XS2A", accountTypes);
                await request.PostJsonAsync(importBankPayload, cancellationToken);
            }
            catch (FlurlHttpException ex)
            {
                if (ex.StatusCode == 451)
                {
                    var location = ex.Call.Response.Headers.FirstOrDefault("Location");
                    return(location);
                }

                var payload = await ex.GetResponseStringAsync();

                _logger.LogError(ex, payload);
            }

            return(null);
        }
Exemplo n.º 3
0
        internal FtpClientProxy(IFtpClientProxyConfig config, IFlurlClientFactory client, TokenProvider tokenProvider, string host, NetworkCredential credentials)
        {
            this._config     = config;
            _tokenProvider   = tokenProvider;
            this.Host        = host;
            this.Credentials = credentials;

            _client = client.Get(_config.FtpProxyWebInterfaceBaseUri)
                      .Configure(c =>
            {
                c.HttpClientFactory      = new UntrustedCertClientFactory();
                c.ConnectionLeaseTimeout = TimeSpan.FromMinutes(30);
            })
                      .WithHeader("Accept", "application/json, text/json")
                      .WithHeader("Accept-Encoding", "gzip, deflate")
                      .WithTimeout(TimeSpan.FromMinutes(20))
                      .AllowHttpStatus(HttpStatusCode.NotFound)
            ;

            _client.BaseUrl = _config.FtpProxyWebInterfaceBaseUri.ToString();

            _connectionInfo = new ConnectionInfo
            {
                Host     = this.Host,
                Username = this.Credentials.UserName,
                Password = this.Credentials.Password,
            };
        }
 public ManagementApiClientFactory(
     IFlurlClientFactory flurlClientFactory,
     IOptionsMonitor <Auth0Options> auth0OptionsMonitor)
 {
     this.flurlClient         = flurlClientFactory.Get("https://dogger.eu.auth0.com/oauth/token");
     this.auth0OptionsMonitor = auth0OptionsMonitor;
 }
Exemplo n.º 5
0
 public WipeCloudflareCacheCommandHandler(
     IOptionsMonitor <CloudflareOptions> cloudflareCacheOptionsMonitor,
     IFlurlClientFactory flurlClientFactory)
 {
     this.cloudflareCacheOptionsMonitor = cloudflareCacheOptionsMonitor;
     this.flurlClient = flurlClientFactory.Get("https://api.cloudflare.com");
 }
Exemplo n.º 6
0
 public GeocodeService(IFlurlClientFactory flurlClientFac,
                       IEnderecoRepository enderecoRepository,
                       IGeoLocationRepository geoLocationRepository)
 {
     this._flurlClient           = flurlClientFac.Get(_URL);
     this._enderecoRepository    = enderecoRepository;
     this._geoLocationRepository = geoLocationRepository;
 }
Exemplo n.º 7
0
 public BiliBiliHelp(AppSettings appSettings, IFlurlClientFactory flurlClientFac,
                     CacheLiteDb cache)
 {
     _flurlClient   = flurlClientFac.Get(BilibiliApiBaseUrl);
     _caching       = cache;
     _setting       = appSettings.BiliBiliSetting;
     _canGetHistory = !string.IsNullOrEmpty(_setting.Cookie);
 }
Exemplo n.º 8
0
 public OrderCloudIntegrationsCardConnectService(OrderCloudIntegrationsCardConnectConfig config, string environment, IFlurlClientFactory flurlFactory)
 {
     Config = config;
     // if no credentials are provided in Test and UAT, responses will be mocked.
     noAccountCredentials = string.IsNullOrEmpty(config?.Authorization) && string.IsNullOrEmpty(config?.AuthorizationCad);
     appEnvironment       = (AppEnvironment)Enum.Parse(typeof(AppEnvironment), environment);
     _flurl = flurlFactory.Get($"https://{Config?.Site}.{Config?.BaseUrl}/");
 }
Exemplo n.º 9
0
        public BaseRepository(IFlurlClientFactory flurlFac, IConfig configuration)
        {
            _flurlClient = flurlFac.Get(configuration.UrlBase);

            _timeOut = configuration.TimeOut;

            _headers = configuration.Headers;
        }
Exemplo n.º 10
0
        /// <summary>
        /// Provides thread-safe access to a specific IFlurlClient, typically to configure settings and default headers.
        /// The URL is used to find the client, but keep in mind that the same client will be used in all calls to the same host by default.
        /// </summary>
        /// <param name="factory">This IFlurlClientFactory.</param>
        /// <param name="url">the URL used to find the IFlurlClient.</param>
        /// <param name="configAction">the action to perform against the IFlurlClient.</param>
        public static IFlurlClientFactory ConfigureClient(this IFlurlClientFactory factory, string url, Action <IFlurlClient> configAction)
        {
            var client = factory.Get(url);

            lock (_clientLocks.GetOrCreateValue(client)) {
                configAction(client);
            }
            return(factory);
        }
Exemplo n.º 11
0
        public GitHubClientFactory(
            IGitHubClient gitHubClient,
            IFlurlClientFactory flurlClientFactory,
            IOptionsMonitor <GitHubOptions> gitHubOptionsMonitor)
        {
            this.gitHubClient         = gitHubClient;
            this.gitHubOptionsMonitor = gitHubOptionsMonitor;

            this.flurlClient = flurlClientFactory.Get("https://github.com/login/oauth/access_token");
        }
        public FlurlWrapperClient(IFlurlClientFactory clientFactory, IOptions <FlurlWrapperClientSettings> appSettings, string url)
        {
            _client = clientFactory.Get(url);

            _circuitBreaker = Policy
                              .Handle <FlurlHttpException>()
                              .Or <FlurlHttpTimeoutException>()
                              .CircuitBreakerAsync(
                exceptionsAllowedBeforeBreaking: appSettings.Value.PollyCircuitBreakExceptionCount,
                durationOfBreak: TimeSpan.FromSeconds(appSettings.Value.PollyCircuitBreakDurationInSeconds));
        }
        public FootballDataOrgImporter(FootballImportServiceConfiguration cfg,
                                       IFlurlClientFactory flurlClientFactory,
                                       IMapper mapper,
                                       ILeagueManager leagueManager)
        {
            _client = flurlClientFactory.Get(cfg.FootballDataOrgApiUrl);
            _client.Headers.Add("X-Auth-Token", cfg.FootballDataOrgApiKey);
            _client.Headers.Add("X-Requests-Available-Minute", "");
            _client.BaseUrl = cfg.FootballDataOrgApiUrl;

            _configuration = cfg;
            _mapper        = mapper;
            _leagueManager = leagueManager;
        }
Exemplo n.º 14
0
        /// <summary>
        /// Initializes a new instance of the <see cref="NasaClient"/> class
        /// </summary>
        /// <param name="settings"></param>
        /// <param name="flurlClientFactory"></param>
        public NasaClient(IOptions <AppSettings> settings, IFlurlClientFactory flurlClientFactory)
        {
            if (settings == null)
            {
                throw new ArgumentNullException(nameof(settings));
            }
            if (flurlClientFactory == null)
            {
                throw new ArgumentNullException(nameof(flurlClientFactory));
            }

            _settings    = settings.Value;
            _flurlClient = flurlClientFactory.Get(_settings.NasaServices.Endpoints.BaseUrl);
        }
Exemplo n.º 15
0
        public ReplController(
            IFlurlClientFactory flurlClientFactory,
            IHostEnvironment hostEnvironment)
        {
            var url = GetReplUrl(hostEnvironment);

            this.client = flurlClientFactory.Get(url).Configure(settings =>
            {
                settings.JsonSerializer = new NewtonsoftJsonSerializer(
                    new JsonSerializerSettings()
                {
                    ContractResolver = new CamelCasePropertyNamesContractResolver()
                });
            });
        }
Exemplo n.º 16
0
        private IFlurlClient _initClient(IFlurlClientFactory client)
        {
            var flurlClient = client.Get(_config.FtpProxyWebInterfaceBaseUri)
                              .Configure(c =>
            {
                c.HttpClientFactory      = new UntrustedCertClientFactory();
                c.ConnectionLeaseTimeout = TimeSpan.FromMinutes(30);
            })
                              .WithHeader("Accept", "application/json, text/json")
                              .WithHeader("Accept-Encoding", "gzip, deflate")
                              .WithTimeout(TimeSpan.FromMinutes(20))
                              .AllowHttpStatus(HttpStatusCode.NotFound)
            ;

            flurlClient.BaseUrl = _config.FtpProxyWebInterfaceBaseUri.ToString();

            return(flurlClient);
        }
        private IFlurlRequest CreateRequest()
        {
            var flurlRequest = new FlurlRequest(url)
            {
                Client = flurlClientFactory.Get(url)
            };

            flurlRequest.WithHeader(CorrelationContext.CorrelationIdName, CorrelationContext.CorrelationId.Value);

            if (headers != null)
            {
                foreach (var header in headers)
                {
                    flurlRequest.WithHeader(header.Key, header.Value);
                }
            }

            flurlRequest.Settings = defaultFlurlHttpSettings.Create();

            flurlRequest.WithTimeout(timeout);

            return(flurlRequest);
        }
Exemplo n.º 18
0
        public FtpClientProxy(IFtpClientProxyConfig config, IFlurlClientFactory client, string host, NetworkCredential credentials)
        {
            this._config     = config;
            this.Host        = host;
            this.Credentials = credentials;

            _client = client.Get(_config.FtpProxyWebInterfaceBaseUri)
                      .Configure(c =>
            {
                c.HttpClientFactory      = new UntrustedCertClientFactory();
                c.ConnectionLeaseTimeout = TimeSpan.FromMinutes(30);
            })
                      .WithHeader("Accept", "application/json, text/json")
                      .WithHeader("Accept-Encoding", "gzip, deflate")
                      .WithTimeout(TimeSpan.FromMinutes(20))
                      .AllowHttpStatus(HttpStatusCode.NotFound)
            ;

            _client.BaseUrl = _config.FtpProxyWebInterfaceBaseUri.ToString();

            if (_config.UseAuth0)
            {
                _auth0 = new AuthenticationApiClientCachingDecorator(new AuthenticationApiClient(_config.TenantID));
            }
            else
            {
                _adal = new AuthenticationContext("https://login.microsoftonline.com/" + this._config.TenantID);
            }

            _connectionInfo = new ConnectionInfo
            {
                Host     = this.Host,
                Username = this.Credentials.UserName,
                Password = this.Credentials.Password,
            };
        }
Exemplo n.º 19
0
 public EnderecoService(IFlurlClientFactory flurlClientFactory)
 {
     flurlClient = flurlClientFactory.Get("https://viacep.com.br/ws");
 }
 public EmployeeRequestHelper(IFlurlClientFactory flurl)
 {
     _flurl = flurl.Get(_baseUrl);
 }
Exemplo n.º 21
0
 public CommonClient(ClientOptions clientOptions, IFlurlClientFactory flurlClientFac)
 {
     this.clientOptions = clientOptions;
     flurlClient        = flurlClientFac.Get(this.clientOptions.InvoiceServiceUrl).SetDefaultSettings();
 }
Exemplo n.º 22
0
 public CTeleportApiClient(
     IFlurlClientFactory flurlClientFactory,
     IOptions <AppSettings> appSettings)
 {
     _client = flurlClientFactory.Get(appSettings.Value.CTeleportBaseUrl);
 }
 public OrderRepository(IFlurlClientFactory flurlFactory, IConfiguration configuration)
 {
     this.client = flurlFactory.Get(new Url(configuration.GetValue(typeof(String), "BASE_URL").ToString()));
 }
 private static IFlurlRequest CreateAuthenticationRequest(IEnumerable <KeyValuePair <string, string> > parameters = null, params object[] urlSegments)
 => ClientFactory.Get(_configuration.AuthBaseUrl)
 .Request(urlSegments)
 .SetQueryParams(parameters)
 .WithTimeout(TimeSpan.FromSeconds(60));
Exemplo n.º 25
0
 public PlayerInstance(PlayerSettings settings, IFlurlClientFactory clientFactory)
 {
     _settings = settings;
     _client = clientFactory.Get(_settings.BaseUrl);
 }
Exemplo n.º 26
0
 public PortalService(AppSettings settings, IFlurlClientFactory flurlFactory)
 {
     _settings = settings;
     _client   = flurlFactory.Get("https://portal.ordercloud.io/api/v1/");
 }
 public GenderRequestHelper(IFlurlClientFactory flurl)
 {
     _flurl = flurl.Get(_baseUrl);
 }
Exemplo n.º 28
0
 public StatusRequestHelper(IFlurlClientFactory flurl)
 {
     _flurl = flurl.Get(_baseUrl);
 }
Exemplo n.º 29
0
 public InboxInvoiceClient(IOptions <ClientOptions> clientOptions, IFlurlClientFactory flurlClientFac)
 {
     this.clientOptions = clientOptions.Value;
     flurlClient        = flurlClientFac.Get(this.clientOptions.InvoiceServiceUrl).SetDefaultSettings();
 }
Exemplo n.º 30
0
 public StripeClient(IFlurlClientFactory flurlClientFactory, IOptions <StripeClientConfig> config)
 {
     _httpClient = flurlClientFactory.Get(config.Value.BaseUrl);
 }