Beispiel #1
0
 public ViagogoClient(
     ProductHeaderValue product,
     IGogoKitConfiguration configuration,
     IOAuth2TokenStore tokenStore,
     ILocalizationProvider localizationProvider,
     IJsonSerializer serializer,
     HttpClientHandler httpClientHandler,
     IList <DelegatingHandler> customHandlers)
     : this(product,
            configuration,
            tokenStore,
            serializer,
            HttpConnectionBuilder.OAuthConnection(configuration, product, serializer)
            .LocalizationProvider(localizationProvider)
            .HttpClientHandler(httpClientHandler)
            .AdditionalHandlers(customHandlers)
            .Build(),
            HttpConnectionBuilder.ApiConnection(configuration, product, serializer)
            .TokenStore(tokenStore)
            .LocalizationProvider(localizationProvider)
            .HttpClientHandler(httpClientHandler)
            .AdditionalHandlers(customHandlers)
            .Build())
 {
 }
        private static BearerTokenAuthenticationHandler CreateHandler(
            IOAuth2TokenStore tokenStore = null,
            IGogoKitConfiguration config = null,
            IOAuth2Client client         = null,
            OAuth2Token token            = null,
            HttpResponseMessage resp     = null)
        {
            var mockTokenStore = new Mock <IOAuth2TokenStore>(MockBehavior.Loose);

            mockTokenStore.Setup(s => s.GetTokenAsync()).Returns(Task.FromResult(token));

            var mockOAuthClient = new Mock <IOAuth2Client>(MockBehavior.Loose);

            mockOAuthClient.Setup(o => o.GetAccessTokenAsync(
                                      It.IsAny <string>(),
                                      It.IsAny <IEnumerable <string> >(),
                                      It.IsAny <IDictionary <string, string> >()))
            .Returns(Task.FromResult(token));
            return(new BearerTokenAuthenticationHandler(
                       client ?? mockOAuthClient.Object,
                       tokenStore ?? mockTokenStore.Object,
                       config ?? new GogoKitConfiguration("c", "s"))
            {
                InnerHandler = new FakeDelegatingHandler(resp: resp)
            });
        }
 private static OAuth2Client CreateClient(
     IHttpConnection conn         = null,
     IGogoKitConfiguration config = null)
 {
     return(new OAuth2Client(
                conn ?? new Mock <IHttpConnection>(MockBehavior.Loose).Object,
                config ?? new GogoKitConfiguration("c", "s")));
 }
Beispiel #4
0
        public ErrorHandler(IApiResponseFactory responseFactory, IGogoKitConfiguration configuration, IJsonSerializer jsonSerializer)
        {
            Requires.ArgumentNotNull(responseFactory, nameof(responseFactory));
            Requires.ArgumentNotNull(configuration, nameof(configuration));

            _responseFactory = responseFactory;
            _configuration   = configuration;
            _jsonSerializer  = jsonSerializer;
        }
Beispiel #5
0
        public OAuth2Client(IHttpConnection connection, IGogoKitConfiguration configuration)
        {
            Requires.ArgumentNotNull(connection, nameof(connection));
            Requires.ArgumentNotNull(configuration, nameof(configuration));

            _connection    = connection;
            _configuration = configuration;
            _linkResolver  = new LinkResolver();
        }
Beispiel #6
0
 public ViagogoClient(
     ProductHeaderValue product,
     IGogoKitConfiguration configuration,
     IOAuth2TokenStore tokenStore)
     : this(product,
            configuration,
            tokenStore,
            new ConfigurationLocalizationProvider(configuration),
            new DefaultJsonSerializer(),
            new HttpClientHandler(),
            new DelegatingHandler[] {})
 {
 }
Beispiel #7
0
        public BearerTokenAuthenticationHandler(
            IOAuth2Client oauthClient,
            IOAuth2TokenStore tokenStore,
            IGogoKitConfiguration configuration)
        {
            Requires.ArgumentNotNull(oauthClient, nameof(oauthClient));
            Requires.ArgumentNotNull(tokenStore, nameof(tokenStore));
            Requires.ArgumentNotNull(configuration, nameof(configuration));

            _oauthClient   = oauthClient;
            _tokenStore    = tokenStore;
            _configuration = configuration;
        }
 private static ErrorHandler CreateErrorHandler(
     IApiResponseFactory respFact   = null,
     IGogoKitConfiguration config   = null,
     IJsonSerializer jsonSerializer = null,
     HttpResponseMessage resp       = null)
 {
     return(new ErrorHandler(
                respFact ?? new FakeApiResponseFactory(),
                config ?? new GogoKitConfiguration("c", "s"),
                jsonSerializer ?? new DefaultJsonSerializer())
     {
         InnerHandler = new FakeDelegatingHandler(resp: resp)
     });
 }
Beispiel #9
0
        public ViagogoClient(
            ProductHeaderValue product,
            IGogoKitConfiguration configuration,
            IOAuth2TokenStore tokenStore,
            IJsonSerializer serializer,
            IHttpConnection oauthConnection,
            IHttpConnection apiConnection)
        {
            Requires.ArgumentNotNull(product, nameof(product));
            Requires.ArgumentNotNull(configuration, nameof(configuration));
            Requires.ArgumentNotNull(tokenStore, nameof(tokenStore));
            Requires.ArgumentNotNull(serializer, nameof(serializer));
            Requires.ArgumentNotNull(oauthConnection, nameof(oauthConnection));
            Requires.ArgumentNotNull(apiConnection, nameof(apiConnection));

            var halKitConfiguration = new HalKitConfiguration(configuration.ViagogoApiRootEndpoint)
            {
                CaptureSynchronizationContext = configuration.CaptureSynchronizationContext
            };

            Configuration = configuration;
            TokenStore    = tokenStore;
            Hypermedia    = new HalClient(halKitConfiguration, apiConnection);
            var linkFactory = new LinkFactory(configuration);

            OAuth2         = new OAuth2Client(oauthConnection, configuration);
            User           = new UserClient(Hypermedia);
            Search         = new SearchClient(Hypermedia);
            Addresses      = new AddressesClient(User, Hypermedia, linkFactory);
            Purchases      = new PurchasesClient(User, Hypermedia, linkFactory);
            Sales          = new SalesClient(Hypermedia, linkFactory);
            Shipments      = new ShipmentsClient(Hypermedia, linkFactory);
            PaymentMethods = new PaymentMethodsClient(User, Hypermedia, linkFactory);
            Countries      = new CountriesClient(Hypermedia, linkFactory);
            Currencies     = new CurrenciesClient(Hypermedia, linkFactory);
            Categories     = new CategoriesClient(Hypermedia, linkFactory);
            Events         = new EventsClient(Hypermedia);
            Listings       = new ListingsClient(Hypermedia);
            Venues         = new VenuesClient(Hypermedia);
            SellerListings = new SellerListingsClient(Hypermedia, linkFactory);
            Webhooks       = new WebhooksClient(Hypermedia, linkFactory);

            BatchClient = new BatchClient(apiConnection,
                                          new ApiResponseFactory(serializer, halKitConfiguration),
                                          serializer,
                                          new LinkResolver());
        }
        private HttpConnectionBuilder(IGogoKitConfiguration configuration,
                                      ProductHeaderValue product,
                                      ConnectionType connectionType,
                                      IJsonSerializer serializer)
        {
            Requires.ArgumentNotNull(configuration, nameof(configuration));
            Requires.ArgumentNotNull(product, nameof(product));
            Requires.ArgumentNotNull(product, nameof(product));

            _configuration  = configuration;
            _product        = product;
            _connectionType = connectionType;
            _serializer     = serializer;

            _tokenStore           = new InMemoryOAuth2TokenStore();
            _localizationProvider = new ConfigurationLocalizationProvider(_configuration);
            _httpClientHandler    = new HttpClientHandler();
            _additionalHandlers   = new DelegatingHandler[] { };
        }
 public ConfigurationLocalizationProvider(IGogoKitConfiguration configuration)
 {
     _configuration = configuration;
 }
Beispiel #12
0
        public LinkFactory(IGogoKitConfiguration configuration)
        {
            Requires.ArgumentNotNull(configuration, nameof(configuration));

            _configuration = configuration;
        }
Beispiel #13
0
 public static ConfiguredTaskAwaitable ConfigureAwait(this Task task, IGogoKitConfiguration configuration)
 {
     return(task.ConfigureAwait(configuration.CaptureSynchronizationContext));
 }
 public static HttpConnectionBuilder OAuthConnection(IGogoKitConfiguration configuration, ProductHeaderValue product, IJsonSerializer serializer)
 {
     return(new HttpConnectionBuilder(configuration, product, ConnectionType.OAuth, serializer));
 }