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>()); }
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); }
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(); }
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(); }
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(); }