public GogoKitConfiguration() { _halKitConfiguration = new HalKitConfiguration(Default.ViagogoApiRootEndpoints[ApiEnvironment.Production]) { CaptureSynchronizationContext = false }; ViagogoApiEnvironment = ApiEnvironment.Production; }
public void ShouldReturnTheGivenConfiguration() { var expectedConfig = new HalKitConfiguration(new Uri("http://foo.api.com")); var connection = CreateConnection(config: expectedConfig); var actualConfig = connection.Configuration; Assert.Same(expectedConfig, actualConfig); }
public void ShouldReturnTheGivenConfiguration() { var expectedConfig = new HalKitConfiguration(new Uri("http://foo.api.io")); var client = CreateClient(config: expectedConfig); var actualConfig = client.Configuration; Assert.Same(expectedConfig, actualConfig); }
public HalKit.Http.HttpConnection Build() { DelegatingHandler authenticationHandler; switch (_connectionType) { case ConnectionType.OAuth: { authenticationHandler = new BasicAuthenticationHandler(_configuration.ClientId, _configuration.ClientSecret); break; } case ConnectionType.Api: { var oauthConnection = OAuthConnection(_configuration, _product, _serializer) .LocalizationProvider(_localizationProvider) .HttpClientHandler(_httpClientHandler) .AdditionalHandlers(_additionalHandlers) .Build(); var oauthClient = new OAuth2Client(oauthConnection, _configuration); authenticationHandler = new BearerTokenAuthenticationHandler(oauthClient, _tokenStore, _configuration); break; } default: { throw new ArgumentOutOfRangeException("_connectionType"); } } var halKitConfiguration = new HalKitConfiguration(_configuration.ViagogoApiRootEndpoint) { CaptureSynchronizationContext = _configuration.CaptureSynchronizationContext }; var responseFactory = new HalKit.Http.ApiResponseFactory(_serializer, halKitConfiguration); // IMPORTANT: The order of these handlers is significant! var handlers = new List <DelegatingHandler> { new ErrorHandler(responseFactory, _configuration, _serializer), new UserAgentHandler(_product), authenticationHandler, new LocalizationHandler(_localizationProvider) }; handlers.AddRange(_additionalHandlers ?? new DelegatingHandler[] { }); return(new HalKit.Http.HttpConnection( handlers, halKitConfiguration, new HalKit.Http.HttpClientFactory(_httpClientHandler), _serializer, responseFactory)); }
public GogoKitConfiguration(string clientId, string clientSecret) { Requires.ArgumentNotNullOrEmpty(clientId, nameof(clientId)); Requires.ArgumentNotNullOrEmpty(clientSecret, nameof(clientSecret)); ClientId = clientId; ClientSecret = clientSecret; _halKitConfiguration = new HalKitConfiguration(Default.ViagogoApiRootEndpoints[ApiEnvironment.Production]) { CaptureSynchronizationContext = false }; ViagogoApiEnvironment = ApiEnvironment.Production; }
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()); }