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