public HttpClientProxy(HttpClient httpClient, IOptions <WebexTeamsSettings> settings)
        {
            _httpClient = httpClient;
            _settings   = settings.Value;

            _httpClient.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", _settings.BotAuthToken);
        }
Esempio n. 2
0
 public WebexTeamsWebhookHandler(IWebexTeamsApiService apiService,
                                 IOptions <WebexTeamsSettings> settings, IWebexTeamsMapper mapper,
                                 IWebexTeamsMessageParser messageParser)
 {
     _apiService    = apiService;
     _settings      = settings.Value;
     _mapper        = mapper;
     _messageParser = messageParser;
 }
        public static IServiceCollection ConfigureWebexTeamsBot(this IServiceCollection services,
                                                                WebexTeamsSettings settings)
        {
            var options = new OptionsWrapper <WebexTeamsSettings>(settings);

            services.AddSingleton <IOptions <WebexTeamsSettings> >(options);
            services.ConfigureCommonServices();
            return(services);
        }
Esempio n. 4
0
 internal void TestSuccessfullyRegisterHooks(WebexTeamsSettings settings, Models.Webhook[] existingHooks,
                                             CreateWebhookRequest[] mappedHooks)
 {
     this.Given(x => GivenWebexTeamsSettings(settings))
     .And(x => GivenExistingWebhooks(existingHooks))
     .When(x => WhenRegisteringWebhooks())
     .Then(x => ThenItShouldDeleteExistingWebhooks(existingHooks))
     .And(x => ThenItShouldRegisterTheNewWebhooks(mappedHooks))
     .BDDfy();
 }
Esempio n. 5
0
        public HttpClientProxyTests()
        {
            _messageHandler = new MockHttpMessageHandler();
            _httpClient     = new HttpClient(_messageHandler);
            var settingsContainer = Substitute.For <IOptions <WebexTeamsSettings> >();
            var settings          = new WebexTeamsSettings
            {
                BotAuthToken     = "botAuthToken",
                WebexTeamsApiUrl = "https://localhost:1234"
            };

            settingsContainer.Value.Returns(settings);
            _subject = new HttpClientProxy(_httpClient, settingsContainer);
        }
Esempio n. 6
0
        public WebexTeamsWebhookHandlerTest()
        {
            _apiService    = Substitute.For <IWebexTeamsApiService>();
            _settings      = new WebexTeamsSettings();
            _messageParser = Substitute.For <IWebexTeamsMessageParser>();
            var options = Substitute.For <IOptions <WebexTeamsSettings> >();

            options.Value.Returns(_settings);
            var mapper = new MapperConfiguration(c =>
            {
                c.AddProfile <CommonMappers>();
                c.AddProfile <WebhookMapper>();
                c.AddProfile <PersonMapper>();
            }).CreateMapper();

            _subject = new WebexTeamsWebhookHandler(_apiService, options, new WebexTeamsMapper(mapper), _messageParser);
        }
        public static WebexTeamsChatHelper CreateWebexTeamsChatHelper(WebexTeamsSettings settings)
        {
            var httpClient = new HttpClient {
                BaseAddress = new Uri("https://api.ciscospark.com/v1")
            };
            var httpClientProxy = new HttpClientProxy(httpClient, new OptionsWrapper <WebexTeamsSettings>(settings));
            var apiService      = new WebexTeamsApiService(httpClientProxy);

            var mapper        = WebexTeamsMapperFactory.CreateMapper();
            var messageParser = new WebexTeamsMessageParser(mapper);

            var messageHandler = new WebexTeamsMessageHandler(apiService, messageParser, mapper);
            var personHandler  = new WebexTeamsPersonHandler(apiService, mapper);
            var roomHandler    = new WebexTeamsRoomHandler(apiService, mapper);

            var webhooks = new WebexTeamsWebhookHandler(apiService, new OptionsWrapper <WebexTeamsSettings>(settings),
                                                        mapper, messageParser);

            return(new WebexTeamsChatHelper(messageHandler, personHandler, roomHandler, webhooks));
        }
Esempio n. 8
0
 private void GivenWebexTeamsSettings(WebexTeamsSettings settings)
 {
     _settings.BotAuthToken     = settings.BotAuthToken;
     _settings.WebexTeamsApiUrl = settings.WebexTeamsApiUrl;
     _settings.Webhooks         = settings.Webhooks;
 }