Example #1
0
        public override async Task DeleteWebHook(ExecutionContext context, [NotNull] CrawlJobData jobData, [NotNull] IWebhookDefinition webhookDefinition)
        {
            if (jobData == null)
            {
                throw new ArgumentNullException(nameof(jobData));
            }
            if (webhookDefinition == null)
            {
                throw new ArgumentNullException(nameof(webhookDefinition));
            }

            await Task.Run(() =>
            {
                var webhookDefinitionProviderDataStore = context.Organization.DataStores.GetDataStore <WebhookDefinition>();
                if (webhookDefinitionProviderDataStore != null)
                {
                    var webhook = webhookDefinitionProviderDataStore.GetById(context, webhookDefinition.Id);
                    if (webhook != null)
                    {
                        webhookDefinitionProviderDataStore.Delete(context, webhook);
                    }
                }

                var organizationProviderDataStore = context.Organization.DataStores.GetDataStore <ProviderDefinition>();
                if (organizationProviderDataStore != null)
                {
                    if (webhookDefinition.ProviderDefinitionId != null)
                    {
                        var webhookEnabled = organizationProviderDataStore.GetById(context, webhookDefinition.ProviderDefinitionId.Value);
                        if (webhookEnabled != null)
                        {
                            webhookEnabled.WebHooks = false;
                            organizationProviderDataStore.Update(context, webhookEnabled);
                        }
                    }
                }
            });
        }
Example #2
0
 public override bool Accept(IWebhookDefinition webhookDefinition)
 {
     return(webhookDefinition.ProviderId == OneDriveConstants.ProviderId || base.Accept(webhookDefinition));
 }
Example #3
0
        public override Task <IEnumerable <WebHookSignature> > CreateWebHook(ExecutionContext context, [NotNull] CrawlJobData jobData, [NotNull] IWebhookDefinition webhookDefinition, [NotNull] IDictionary <string, object> config)
        {
            if (jobData == null)
            {
                throw new ArgumentNullException(nameof(jobData));
            }
            if (webhookDefinition == null)
            {
                throw new ArgumentNullException(nameof(webhookDefinition));
            }
            if (config == null)
            {
                throw new ArgumentNullException(nameof(config));
            }

            throw new NotImplementedException();
        }
Example #4
0
        public override async Task <IEnumerable <WebHookSignature> > CreateWebHook(ExecutionContext context, [NotNull] CrawlJobData jobData, [NotNull] IWebhookDefinition webhookDefinition, [NotNull] IDictionary <string, object> config)
        {
            if (jobData == null)
            {
                throw new ArgumentNullException(nameof(jobData));
            }
            if (webhookDefinition == null)
            {
                throw new ArgumentNullException(nameof(webhookDefinition));
            }
            if (config == null)
            {
                throw new ArgumentNullException(nameof(config));
            }

            var hubSpotCrawlJobData = (HubSpotCrawlJobData)jobData;
            var webhookSignatures   = new List <WebHookSignature>();

            try
            {
                var client = _hubspotClientFactory.CreateNew(hubSpotCrawlJobData);

                var data = await client.GetWebHooks();

                if (data == null)
                {
                    return(webhookSignatures);
                }

                var hookTypes = new[] { "contact.creation", "contact.deletion", "contact.propertyChange", "company.creation", "company.deletion", "company.propertyChange", "deal.creation", "deal.deletion", "deal.propertyChange" };

                foreach (var subscription in hookTypes)
                {
                    if (config.ContainsKey("webhooks"))
                    {
                        var enabledHooks = (List <Webhook>)config["webhooks"];
                        var enabled      = enabledHooks.Where(s => s.Status == "ACTIVE").Select(s => s.Name);
                        if (!enabled.Contains(subscription))
                        {
                            continue;
                        }
                    }

                    try
                    {
                        await client.CreateWebHook(subscription);

                        webhookSignatures.Add(new WebHookSignature {
                            Signature = webhookDefinition.ProviderDefinitionId.ToString(), ExternalVersion = "v1", ExternalId = null, EventTypes = "contact.creation,contact.deletion,contact.propertyChange,company.creation,company.deletion,company.propertyChange,deal.creation,deal.deletion,deal.propertyChange"
                        });
                    }
                    catch (Exception e)
                    {
                        _log.Warn(() => $"Could not create HubSpot Webhook for subscription: {subscription}", e);
                    }
                }

                webhookDefinition.Uri = new Uri(this.appContext.System.Configuration.WebhookReturnUrl.Trim('/') + ConfigurationManager.AppSettings["Providers.HubSpot.WebhookEndpoint"]);

                webhookDefinition.Verified = true;
            }
            catch (Exception exception)
            {
                _log.Warn(() => "Could not create HubSpot Webhook", exception);
            }

            var organizationProviderDataStore = context.Organization.DataStores.GetDataStore <ProviderDefinition>();

            if (organizationProviderDataStore != null)
            {
                if (webhookDefinition.ProviderDefinitionId != null)
                {
                    var webhookEnabled = organizationProviderDataStore.GetById(context, webhookDefinition.ProviderDefinitionId.Value);
                    if (webhookEnabled != null)
                    {
                        webhookEnabled.WebHooks = true;
                        organizationProviderDataStore.Update(context, webhookEnabled);
                    }
                }
            }

            return(webhookSignatures);
        }
Example #5
0
 public override Task <IEnumerable <WebHookSignature> > CreateWebHook(Core.ExecutionContext context, CrawlJobData jobData, IWebhookDefinition webhookDefinition, IDictionary <string, object> config)
 {
     throw new NotImplementedException();
 }
Example #6
0
        public override Task DeleteWebHook(ExecutionContext context, [NotNull] CrawlJobData jobData, [NotNull] IWebhookDefinition webhookDefinition)
        {
            if (jobData == null)
            {
                throw new ArgumentNullException(nameof(jobData));
            }
            if (webhookDefinition == null)
            {
                throw new ArgumentNullException(nameof(webhookDefinition));
            }

            throw new NotImplementedException();
        }
Example #7
0
 public override bool Accept(IWebhookDefinition webhookDefinition)
 {
     return(webhookDefinition.ProviderId == HarvestCrawlerConstants.ProviderId || base.Accept(webhookDefinition));
 }
Example #8
0
 public override Task DeleteWebHook(Core.ExecutionContext context, CrawlJobData jobData, IWebhookDefinition webhookDefinition)
 {
     throw new NotImplementedException();
 }
Example #9
0
        public override async Task <IEnumerable <WebHookSignature> > CreateWebHook(ExecutionContext context, [NotNull] CrawlJobData jobData, [NotNull] IWebhookDefinition webhookDefinition, [NotNull] IDictionary <string, object> config)
        {
            if (jobData == null)
            {
                throw new ArgumentNullException(nameof(jobData));
            }

            if (webhookDefinition == null)
            {
                throw new ArgumentNullException(nameof(webhookDefinition));
            }

            if (config == null)
            {
                throw new ArgumentNullException(nameof(config));
            }

            return(await Task.Run(() =>
            {
                var webhookSignatures = new List <WebHookSignature>();

                var webhookSignature = new WebHookSignature {
                    Signature = webhookDefinition.ProviderDefinitionId.ToString(), ExternalVersion = "v1", ExternalId = null, EventTypes = "Created,Uploaded,Commented,Downloaded,Previewed,Moved,Copied"
                };

                webhookSignatures.Add(webhookSignature);

                webhookDefinition.Uri = new Uri(appContext.System.Configuration.WebhookReturnUrl.Trim('/') + ConfigurationManager.AppSettings["Providers.Dropbox.WebhookEndpoint"]);

                var organizationProviderDataStore = context.Organization.DataStores.GetDataStore <ProviderDefinition>();
                if (organizationProviderDataStore != null)
                {
                    if (webhookDefinition.ProviderDefinitionId != null)
                    {
                        var webhookEnabled = organizationProviderDataStore.GetById(context, webhookDefinition.ProviderDefinitionId.Value);
                        if (webhookEnabled != null)
                        {
                            webhookEnabled.WebHooks = true;
                            organizationProviderDataStore.Update(context, webhookEnabled);
                        }
                    }
                }

                webhookDefinition.Verified = true;

                return webhookSignatures;
            }));
        }
Example #10
0
 public override bool Accept(IWebhookDefinition webhookDefinition)
 {
     return(webhookDefinition.ProviderId == GoToMeetingConstants.ProviderId || base.Accept(webhookDefinition));
 }
Example #11
0
 public override bool Accept(ExecutionContext context, IWebhookDefinition webhookDefinition)
 {
     return(true);
 }
        public override async Task <IEnumerable <WebHookSignature> > CreateWebHook(ExecutionContext context, [NotNull] CrawlJobData jobData, [NotNull] IWebhookDefinition webhookDefinition, [NotNull] IDictionary <string, object> config)
        {
            await Task.Run(() =>
            {
                var adversusCrawlJobData = (AdversusCrawlJobData)jobData;
                var webhookSignatures    = new List <WebHookSignature>();
                try
                {
                    var client = _adversusClientFactory.CreateNew(adversusCrawlJobData);

                    var data = client.GetWebhooks(adversusCrawlJobData.Username, adversusCrawlJobData.Password);

                    if (data == null)
                    {
                        return(webhookSignatures);
                    }

                    var hookTypes         = new[] { "lead_saved", "call_ended", "callAnswered", "leadClosedSuccess", "leadClosedAutomaticRedial", "leadClosedPrivateRedial", "leadClosedNotInterested", "leadClosedInvalid", "leadClosedUnqualified", "leadClosedSystem", "leads_deactivated", "leads_inserted", "mail_activity", "sms_sent", "sms_received", "appointment_added", "appointment_updated" };
                    webhookDefinition.Uri = new Uri(this.appContext.System.Configuration.WebhookReturnUrl.Trim('/') /*+ ConfigurationManagerEx.AppSettings["Providers.HubSpot.WebhookEndpoint"]*/);

                    foreach (var subscription in hookTypes)
                    {
                        if (config.ContainsKey("webhooks"))
                        {
                            //var enabledHooks = (List<WebhookEventType>)config["webhooks"];
                            //var enabled = enabledHooks.Where(s => s.Status == "ACTIVE").Select(s => s.Name);
                            //if (!enabled.Contains(subscription))
                            //{
                            //    continue;
                            //}
                        }

                        try
                        {
                            var result = client.CreateWebhooks(webhookDefinition.Uri, subscription);
                            webhookSignatures.Add(new WebHookSignature {
                                Signature = webhookDefinition.ProviderDefinitionId.ToString(), ExternalVersion = "v1", ExternalId = null, EventTypes = "lead_saved,call_ended,callAnswered,leadClosedSuccess,leadClosedAutomaticRedial,leadClosedPrivateRedial,leadClosedNotInterested,leadClosedInvalid,leadClosedUnqualified,leadClosedSystem,leads_deactivated,leads_inserted,mail_activity,sms_sent,sms_received,appointment_added,appointment_updated"
                            });
                        }
                        catch (Exception exception)
                        {
                            context.Log.LogWarning("Could not create HubSpot Webhook for subscription", exception);
                            return(new List <WebHookSignature>());
                        }
                    }


                    webhookDefinition.Verified = true;
                }
                catch (Exception exception)
                {
                    context.Log.LogWarning("Could not create Adversus Webhook", exception);
                    return(new List <WebHookSignature>());
                }

                var organizationProviderDataStore = context.Organization.DataStores.GetDataStore <ProviderDefinition>();
                if (organizationProviderDataStore != null)
                {
                    if (webhookDefinition.ProviderDefinitionId != null)
                    {
                        var webhookEnabled = organizationProviderDataStore.GetById(context, webhookDefinition.ProviderDefinitionId.Value);
                        if (webhookEnabled != null)
                        {
                            webhookEnabled.WebHooks = true;
                            organizationProviderDataStore.Update(context, webhookEnabled);
                        }
                    }
                }

                return(webhookSignatures);
            });

            return(new List <WebHookSignature>());
        }
Example #13
0
 public override bool Accept(IWebhookDefinition webhookDefinition)
 {
     return(webhookDefinition.ProviderId == AdventureWorksConstants.ProviderId || base.Accept(webhookDefinition));
 }