Beispiel #1
0
        public override IEnumerable <Clue> DoProcess(ExecutionContext context, WebhookDataCommand command)
        {
            try
            {
                if (ConfigurationManager.AppSettings.GetFlag("Feature.Webhooks.Log.Posts", false))
                {
                    context.Log.Debug(() => command.HttpPostData);
                }

                var configurationDataStore = context.ApplicationContext.Container.Resolve <IConfigurationRepository>();
                if (command.WebhookDefinition.ProviderDefinitionId != null)
                {
                    var providerDefinition = context.Organization.Providers.GetProviderDefinition(context, command.WebhookDefinition.ProviderDefinitionId.Value);
                    var jobDataCheck       = context.ApplicationContext.Container.ResolveAll <IProvider>().FirstOrDefault(providerInstance => providerDefinition != null && providerInstance.Id == providerDefinition.ProviderId);
                    var configStoreData    = configurationDataStore.GetConfigurationById(context, command.WebhookDefinition.ProviderDefinitionId.Value);

                    // If you have stopped the provider then don't process the webhooks
                    if (providerDefinition != null && providerDefinition.WebHooks != null)
                    {
                        if (providerDefinition.WebHooks == false || providerDefinition.IsEnabled == false)
                        {
                            return(new List <Clue>());
                        }
                    }

                    if (jobDataCheck != null)
                    {
                        var crawlJobData = new GoToMeetingCrawlJobData();

                        var clues = new List <Clue>();

                        IAgentJobProcessorArguments jobArgs = new DebugAgentJobProcessorArguments
                        {
                            TaskScheduler = TaskScheduler.Default,
                            Job           = new AgentJob(Guid.NewGuid(), AgentJobPriority.Normal, "CluedIn" + GoToMeetingConstants.ProviderName, ProcessingRestriction.Any, null, null)
                        };

                        throw new NotImplementedException("TODO: Implement this");
                    }
                }
            }
            catch (Exception exception)
            {
                context.Log.Error(new { command.HttpHeaders, command.HttpQueryString, command.HttpPostData, command.WebhookDefinitionId }, () => "Could not process web hook message", exception);
            }

            return(new List <Clue>());
        }
Beispiel #2
0
        public override async Task <CrawlJobData> GetCrawlJobData(ProviderUpdateContext context, [NotNull] IDictionary <string, object> configuration, Guid organizationId, Guid userId, Guid providerDefinitionId)
        {
            if (configuration == null)
            {
                throw new ArgumentNullException(nameof(configuration));
            }

            var gotomeetingCrawlJobData = new GoToMeetingCrawlJobData();

            if (configuration.ContainsKey("Access-Token"))
            {
                gotomeetingCrawlJobData.AccessToken = configuration["Access-Token"].ToString();
            }

            return(gotomeetingCrawlJobData);
        }
Beispiel #3
0
        public void PassWordBasedGetDataReturnsData()
        {
            var consumerKey    = "gz6BEIMXHlMH8aCY9n1uJyAFFwiTlUJX";
            var consumerSecret = "Twx5nyR4hP3s0GTm";

            var userName     = "******";
            var userPassword = "******";
            var authApi      = new OAuth2Api(consumerKey, consumerSecret);
            var response     = authApi.DirectLogin(userName, userPassword);
            var AccessToken  = response.access_token;

            var jobData = new GoToMeetingCrawlJobData();

            jobData.AccessToken = AccessToken;

            _sut.GetData(jobData)
            .ShouldNotBeNull();
        }
Beispiel #4
0
        public GoToMeetingClient([NotNull] ILogger log, [NotNull] GoToMeetingCrawlJobData gotomeetingCrawlJobData) //TODO: pass on any extra dependencies
        {
            if (log == null)
            {
                throw new ArgumentNullException(nameof(log));
            }
            if (gotomeetingCrawlJobData == null)
            {
                throw new ArgumentNullException(nameof(gotomeetingCrawlJobData));
            }
            if (string.IsNullOrEmpty(gotomeetingCrawlJobData.AccessToken))
            {
                throw new Exception("CrawlJobData must have valid access token");
            }

            _log = log;
            _nameCrawlJobData = gotomeetingCrawlJobData;
            accessToken       = _nameCrawlJobData.AccessToken;

            MeetingsApi   = new MeetingsApi();
            OrganizersApi = new OrganizersApi();
        }
Beispiel #5
0
        public void OAuthBasedGetDataReturnsData()
        {
            var consumerKey    = "gz6BEIMXHlMH8aCY9n1uJyAFFwiTlUJX";
            var consumerSecret = "Twx5nyR4hP3s0GTm";

            var oauth2api = new OAuth2Api(consumerKey, consumerSecret);
            var authUrl   = oauth2api.GetOAuth2AuthorisationUrl(consumerKey);

            Console.WriteLine("Authentication url:");
            Console.WriteLine(authUrl);
            Console.WriteLine("Enter redirect url:");
            var responsekey   = oauth2api.GetResponseKey(new Uri(Console.ReadLine()));
            var tokenResponse = oauth2api.GetAccessTokenResponse(responsekey);
            var AccessToken   = tokenResponse.access_token;

            Console.WriteLine(string.Format("Access token: {0}", AccessToken));

            var jobData = new GoToMeetingCrawlJobData();

            jobData.AccessToken = AccessToken;

            _sut.GetData(jobData)
            .ShouldNotBeNull();
        }