public FirebaseRemarksRepository(IOptions <FirebaseConfig> options, IApiClient apiClient, IApiRequestProvider requestProvider, IHttpContextAccessor contextAccessor) { _config = options.Value ?? throw new InvalidOperationException("Missing config."); _apiClient = apiClient; _requestProvider = requestProvider; _endpoint = $"{_config.DbEndPoint.TrimEnd('/')}/projects/{_config.ProjectId}/databases/(default)/documents"; // TODO: REFACTOR // This repository reuses the authorisation header from the original request which is a bad design. // This service should manage its own authorisation with the external API being called. contextAccessor.HttpContext.Request.Headers.TryGetValue("Authorization", out var authorisation); var auth = authorisation.ToString(); // HACK: // Firebase is finicky with the OAuth header so we need to fix the header to the casing it accepts. if (auth.StartsWith("bearer ", StringComparison.OrdinalIgnoreCase)) { auth = $"Bearer{auth.Substring(6)}"; } _defaultHeader = new Dictionary <string, string> { { "Authorization", auth } }; _defaultQuery = new Dictionary <string, string> { { "key", _config.ApiKey } }; }
public NoOpsApiClient(IOptionsSnapshot <NoOpsChallengeOptions> options, IApiRequestProvider requestProvider, IApiClient client, ILogger <NoOpsApiClient> logger) { _apiUrl = options?.Value?.NoOpsChallengeApiUrl ?? throw new ArgumentNullException(nameof(options)); _requestProvider = requestProvider; _client = client; _logger = logger; }
public static IApiRequestProvider Load() { IApiRequestProvider provider = null; switch (eXtensibleWebApiConfig.LogTo) { case XF.Common.LoggingStrategyOption.Datastore: provider = new SqlServerApiRequestProvider(); break; case XF.Common.LoggingStrategyOption.Plugin: provider = PluginLoader.LoadReferencedAssembly <IApiRequestProvider>().FirstOrDefault() as IApiRequestProvider; break; case XF.Common.LoggingStrategyOption.WindowsEventLog: case XF.Common.LoggingStrategyOption.None: case XF.Common.LoggingStrategyOption.Output: case XF.Common.LoggingStrategyOption.Silent: case XF.Common.LoggingStrategyOption.XFTool: case XF.Common.LoggingStrategyOption.CommonServices: default: break; } return(provider); }
public WebImageClientTests() { _requestProvider = Substitute.For <IApiRequestProvider>(); _apiClient = Substitute.For <IApiClient>(); _client = new WebImageClient(_requestProvider, _apiClient, Substitute.For <ILogger <WebImageClient> >()); }
public eXtensibleMessageHandler(IApiRequestProvider provider) { if (provider == null) { RequestProvider = new SqlServerApiRequestProvider(); } else { RequestProvider = provider; } }
public FirebaseAuthenticationProvider(IOptions <FirebaseConfig> options, IApiClient apiClient, IApiRequestProvider requestProvider) { _config = options.Value ?? throw new InvalidOperationException("Missing config."); _apiClient = apiClient; _requestProvider = requestProvider; _endpoint = $"{_config.AuthEndpoint.TrimEnd('/')}/accounts"; _defaultQuery = new Dictionary <string, string> { { "key", _config.ApiKey } }; }
public NoOpsApiClientTests() { _noopsUrl = "noopsUrl"; var options = Substitute.For <IOptionsSnapshot <NoOpsChallengeOptions> >(); options.Value.Returns(new NoOpsChallengeOptions { NoOpsChallengeApiUrl = _noopsUrl }); _requestProvider = Substitute.For <IApiRequestProvider>(); _apiClient = Substitute.For <IApiClient>(); _client = new NoOpsApiClient(options, _requestProvider, _apiClient, Substitute.For <ILogger <NoOpsApiClient> >()); }
public AzureRepositoryTests() { _database = "databaseUrl"; var options = Substitute.For <IOptions <HospitalConfig> >(); options.Value.Returns(new HospitalConfig { Database = _database }); _apiClient = Substitute.For <IApiClient>(); _requestProvider = Substitute.For <IApiRequestProvider>(); _repository = new Repository(options, _apiClient, _requestProvider); }
public FirebaseAuthenticationProviderTests() { _firebaseAuthEndpoint = "firebaseAuthEndpoint"; _firebaseApiKey = "firebaseApiKey"; var options = Substitute.For <IOptions <FirebaseConfig> >(); options.Value.Returns(new FirebaseConfig { AuthEndpoint = _firebaseAuthEndpoint, ApiKey = _firebaseApiKey }); _apiClient = Substitute.For <IApiClient>(); _requestProvider = Substitute.For <IApiRequestProvider>(); _provider = new FirebaseAuthenticationProvider(options, _apiClient, _requestProvider); }
public FirebaseDatabaseRepositoryTests() { _firebaseProjectId = "firebaseProjectId"; _firebaseDatabase = "firebaseDatabaseUrl"; _firebaseApiKey = "firebaseApiKey"; _requestAuthorisation = "Bearer token"; var options = Substitute.For <IOptions <FirebaseConfig> >(); options.Value.Returns(new FirebaseConfig { ProjectId = _firebaseProjectId, DbEndPoint = _firebaseDatabase, ApiKey = _firebaseApiKey }); _apiClient = Substitute.For <IApiClient>(); _requestProvider = Substitute.For <IApiRequestProvider>(); var context = new DefaultHttpContext(); context.Request.Headers.Add("Authorization", _requestAuthorisation); _accessor = Substitute.For <IHttpContextAccessor>(); _accessor.HttpContext.Returns(context); _repository = new FirebaseRemarksRepository(options, _apiClient, _requestProvider, _accessor); }
public WebImageClient(IApiRequestProvider requestProvider, IApiClient client, ILogger <WebImageClient> logger) { _requestProvider = requestProvider; _client = client; _logger = logger; }
public AzureRepository(IOptions <HospitalConfig> options, IApiClient apiClient, IApiRequestProvider requestProvider) { _config = options.Value ?? throw new InvalidOperationException("Missing config."); _apiClient = apiClient; _requestProvider = requestProvider; }
public ApiRequestProviderTests() { _provider = new ApiRequestProvider(); }