Esempio n. 1
0
        /// <summary>
        /// Atualiza as propriedades do line item
        /// </summary>
        /// <param name="value"></param>
        /// <returns></returns>
        public LineItemObjectModelGet AtualizarLineItem(DadosIntegracao dados)
        {
            if (dados.LineItem.LineItemId <= 0)
            {
                return(base.CriarModelError <LineItemObjectModelGet>("LINEITEMID"));
            }

            var value = dados?.LineItem?.Propriedades?.Select(prop => new ModelPostInArray {
                Name = prop.Chave, Value = prop.Valor
            })?.ToList();
            var endpoint = $"{base.UrlBase}/crm-objects/v1/objects/line_items/{dados.LineItem.LineItemId}/?hapikey={base.HapiKey}";
            var model    = base.PutInList <List <ModelPostInArray>, LineItemObjectModelGet>(endpoint, value);

            return(model);
        }
        /// <summary>
        /// Atualiza um produto
        /// </summary>
        /// <param name="dados"></param>
        /// <returns></returns>
        public ProductObjectModelGet AtualizarProduto(DadosIntegracao dados)
        {
            if (dados.Product.ProductId <= 0)
            {
                return(base.CriarModelError <ProductObjectModelGet>("PRODUCTID"));
            }

            var value = dados?.Product?.Propriedades?.Select(prop => new ModelPostInArray {
                Name = prop.Chave, Value = prop.Valor
            })?.ToList();
            var endpoint = $"{base.UrlBase}/crm-objects/v1/objects/products/{dados.Product.ProductId}?hapikey={base.HapiKey}";
            var model    = base.PutInList <List <ModelPostInArray>, ProductObjectModelGet>(endpoint, value);

            return(model);
        }
Esempio n. 3
0
        /// <summary>
        /// Verifica se o deal já exista e retorna o mesmo, caso não tenha o deal cria o mesmo
        /// </summary>
        /// <param name="value"></param>
        /// <returns></returns>
        public DealModelGet CriarDeal(DadosIntegracao dados)
        {
            var value = new DealModelPost {
                Associations = new Rest.Models.Associations {
                    ContactIds = new long[] { dados.Contact.ContactId }
                },
                Properties = dados?.Deal.Propriedades?.Select(prop => new PropertyName {
                    Name = prop.Chave, Value = prop.Valor
                })?.ToList()
            };
            var endpoint = $"{base.UrlBase}/deals/v1/deal?hapikey={base.HapiKey}";
            var model    = base.Post <DealModelPost, DealModelGet>(endpoint, value);

            dados.Deal.DealId = model.DealId;
            return(model);
        }
Esempio n. 4
0
        public IntentModelGet EnviarMensagem(DadosIntegracao dados)
        {
            var value = new IntentModelPost
            {
                ChatChannelNumber = base.ChatChannelNumber,
                ChatPlatform      = dados.ChatPlatform ?? "whatsapp",
                PlatformContactId = dados.PlatformContactId,
                RuleNameOrId      = dados.Intent.RuleNameOrId,
                Params            = dados.Intent.Params
            };

            var endpoint = $"{base.UrlBase}/intent/v2";
            var model    = base.Post <IntentModelPost, IntentModelGet>(endpoint, value);

            dados.Id = model.Id;
            return(model);
        }
Esempio n. 5
0
        /// <summary>
        /// Atualiza as propriedades do deal
        /// </summary>
        /// <param name="value"></param>
        /// <returns></returns>
        public DealModelGet AtualizarDeal(DadosIntegracao dados)
        {
            if (dados.Deal.DealId <= 0)
            {
                return(base.CriarModelError <DealModelGet>("DEALID"));
            }

            var value = new DealModelPut {
                DealId     = dados.Deal.DealId,
                Properties = dados?.Deal.Propriedades?.Select(prop => new PropertyName {
                    Name = prop.Chave, Value = prop.Valor
                })?.ToList()
            };
            var endpoint = $"{base.UrlBase}/deals/v1/deal/{value.DealId}?hapikey={base.HapiKey}";
            var model    = base.Put <DealModelPut, DealModelGet>(endpoint, value);

            return(model);
        }
        /// <summary>
        /// Envia o formulário para HUBSPOT
        /// </summary>
        /// <param name="dados"></param>
        /// <returns></returns>
        public FormModelGet EnviarFormulario(DadosIntegracao dados, bool skipValidation = false)
        {
            if (string.IsNullOrEmpty(dados.Inscricao.Email))
            {
                return(base.CriarModelError <FormModelGet>("E-MAIL"));
            }

            var value = new FormModelPost {
                SkipValidation = skipValidation,
                Properties     = dados?.Formulario?.Propriedades?.Select(prop => new PropertyName {
                    Name = prop.Chave, Value = prop.Valor
                })?.ToList(),
                Context = dados.Formulario.Contexto
            };
            var endpoint = $"{base.UrlBaseForms}/submissions/v3/integration/submit/{dados.Formulario.PortalId}/{dados.Formulario.FormId}";
            var model    = base.Post <FormModelPost, FormModelGet>(endpoint, value);

            return(model);
        }
        /// <summary>
        /// Cria ou atualiza um contato, caso já exista um contato para o e-mail apenas atualiza o registro
        /// </summary>
        /// <param name="value"></param>
        /// <returns></returns>
        public ContactModelGet CriarOuAtualizarContato(DadosIntegracao dados)
        {
            if (string.IsNullOrEmpty(dados.Inscricao.Email))
            {
                return(base.CriarModelError <ContactModelGet>("E-MAIL"));
            }

            var value = new ContactModelPost {
                Email      = dados.Inscricao.Email,
                Properties = dados?.Contact?.Propriedades?.Select(prop => new PropertyProp {
                    Property = prop.Chave, Value = prop.Valor
                })?.ToList()
            };
            var endpoint = $"{base.UrlBase}/contacts/v1/contact/createOrUpdate/email/{value.Email}/?hapikey={base.HapiKey}";
            var model    = base.Post <ContactModelPost, ContactModelGet>(endpoint, value);

            dados.Contact.ContactId = model.ContactId;
            return(model);
        }