GithubHelp home page GithubHelp logo

moorse-sdk-node's Introduction

Moorse SDK

O moorse sdk surge como solução ao problema que muitos desenvolvedores enfrentam de necessitar criar suas próprias requisições http à API da Moorse, com ele, torna-se possível enviar requests à nossa API de forma simplificada, sem a necessidade de configurar todos os requests do início ao fim.

Sumário

  1. Início rápido
  2. Objeto moorse
    1. Criação
    2. Atributos do construtor
  3. Métodos síncronos
    1. getToken
    2. setToken
    3. getIntegrationId
    4. setIntegrationId
  4. Métodos assíncronos
    1. login
    2. Métodos do whatsapp
      1. sendText
      2. sendFile
      3. sendButtons
      4. sendListMenu
      5. sendImage
      6. sendVideo
      7. sendVoice
      8. sendAudio
      9. getCredits
      10. getIntegrationStatus
    3. Métodos de webhook
      1. getWebhookById
      2. createWebhook
      3. deleteWebhook
      4. updateWebhook
    4. Métodos de template
      1. createTemplate
      2. getTemplates
      3. getTemplateById
      4. deleteTemplateById
    5. Métodos de faturamento
      1. totalMessages
      2. totalMessagesPerChannel
      3. totalMessagesTimeline
    6. Métodos de Sms
      1. sendSms
    7. Métodos de grupos
      1. createGroup
      2. deleteGroup
      3. sendFileOnGroup
      4. sendTextOnGroup
      5. updateGroup

1. Início rápido

Antes de tudo, inicie um projeto nodejs em typescript e instale o pacote da moorse nele utilizando o npm:

npm i moorseio

Caso esteja usando typescript, inclua o pacote da moorse no seu código, crie o objeto moorse e chame o método sendText para enviar uma mensagem

import { Moorse } from "moorseio";

const moorse: Moorse = new Moorse({
    channelType: "whatsapp",
    integrationId: "some-moorse-integration-id",
    email: "[email protected]",
    password: "strongpass123"
});
moorse.sendText({
    to: "5583996843637",
    body: "wow, it's a moorse message!"
}).then((answer)=>{
    console.log(answer);
});

Ao executar este trecho de código, o sdk usará seu email e senha para resgatar seu token da moorse e enviar uma mensagem ao número te telefone passado no método sendText().

2. Objeto moorse

O objeto Moorse é a parte central do SDK, nele estão guardados todas os métodos que futuramente servirão para consumir alguma rota da Moorse.

2.1. Criação

A criação se dá como a de qualquer outro objeto, cria-se uma instância chamando o construtor e passando todos os atributos necessários.

import { Moorse } from "moorseio";

const moorse: Moorse = new Moorse({
    channelType: "whatsapp",
    email: "[email protected]",
    password: "senhaforte123"
});

2.2. Atributos do MoorseObject

Para o construtor da moorse usa-se apenas um objeto chamado de MoorseObject nele, podem/devem ser definidos os seguintes atributos:

atributo tipo obrigatório? descrição
channelType string sim tipo de canal de comunicação desejado (apenas whatsapp é suportado atualmente)
integrationId string não id de uma integração sua da moorse
email string não email do usuário cadastrado no site da moorse
password string não senha do usuário cadastrado no site da moorse
token string não token do usuário cadastrado no site da moorse (pode ser encontrado no dashboard do site)
onLogin função não uma função que é executada quando usuário da moorse for logado (isso só acontece caso seja passado apenas email e senha e não o token no MoorseObject )

3. Métodos síncronos

3.1. getToken

Definição:

getToken(): string

Exemplo:

moorse.getToken();

Retorno: string

3.2. setToken

Definição:

setToken(token: string): void

Exemplo:

moorse.setToken("novo-token-desejado");

Retorno: void

3.3. getIntegrationId

Definição:

getIntegrationId(): string

Exemplo:

moorse.getIntegrationId();

Retorno: string

3.4. setIntegrationId

Definição:

setIntegrationId(integrationId: string): void

Exemplo:

moorse.setTokenIntegrationId("novo-integrationid-desejado");

Retorno: void

4. Métodos assíncronos

4.1. login

Definição:

login(email: string, password: string): Promise<MoorseResponse>

Exemplo:

moorse.login("[email protected]", "senhaforte").then((data: any)=>{
    console.log(data);
});

Objeto do retorno:

{
    data: any
    errors: any
    links: any
}

4.2. Métodos do whatsapp

4.2.1. sendText

Definição:

sendText(args: SendTextObject): Promise<MoorseResponse>

SendTextObject

type SendTextObject ={
    to: string;
    body: string;
    integrationId?: string;
}

Exemplo:

moorse.sendText({
    to: "655645198411"
    body: "olá"
});
moorse.sendText({
    to: "655645198411"
    body: "olá",
    integrationId: "54198498-498-4984984-984"
});

Retorno:

{
    data: any
    errors: any
    links: any
}

4.2.2. sendFile

Definição:

sendFile(args: SendFileObject): Promise<MoorseResponse>

SendFileObject

type SendFileObject = {
    to: string;
    body: string;
    filename: string;
    caption: string;
    integrationId?: string;
};

Exemplo:

moorse.sendFile({
    to: "6485456184",
    body: base64EncodedImage,
    filename: "gatinho.png"
    caption: "olha essa foto!"
});

Objeto do retorno:

{
    data: any
    errors: any
    links: any
}

4.2.3. sendButtons

Definição:

sendButtons(args: SendButtonsObject): Promise<MoorseResponse>

SendButtonsObject

type SendButtonsObject = {
    buttons: string[],
    title: string,
    subtitle: string,
    to: string
    integrationId?: string;
}

Exemplo:

moorse.sendButtons({
    buttons: ["a", "b", "c"],
    title: "titulo do botão",
    subtitle: "subtitulo do botão",
    to: "54954196852",
    integrationId: "6548541-854-84984"
});

Objeto do retorno:

{
    data: any
    errors: any
    links: any
}

4.2.4. sendListMenu

Definição:

sendListMenu(args: SendListMenuObject): Promise<MoorseResponse>

SendListMenuObject

type SendListMenuObject = {
    integrationId?: string,
    to: string,
    body: string,
    action: {
        sections: {
            title: string,
            rows: {
                id: string;
                title: string;
            }[],
        }[],
    }
};

Exemplo:

moorse.sendListMenu({
  to: "5511999999999",
  body: "Olá 🙂\nQue bom que você chegou!\n\nAqui no Zap Americanas temos ofertas incríveis e personalizadas pra você ❤️",
  action: {
    sections: [
      {
        title: "OFERTA",
        rows: [
          {
            id: "MEUS_CUPONS",
            title: "Meus cupons"
          },
          {
            id: "PRODUTOS_ALTA",
            title: "Produtos em alta"
          }
        ]
      },
      {
        title: "OUTROS",
        rows: [
          {
            id: "SUA_OPNIAO",
            title: "Dê sua opnião"
          },
          {
            id: "FALAR_PESSOA",
            title: "Falar com uma pessoa"
          }
        ]
      }
    ]
  }
});

Objeto do retorno:

{
    data: any
    errors: any
    links: any
}

4.2.5. sendImage

Definição:

sendImage(args: SendImageObject): Promise<MoorseResponse>

SendImageObject

type SendImageObject = {
    to: string;
    body: string;
    filename: string;
    caption: string;
    integrationId?: string;
};

Exemplo:

moorse.sendImage({
    to: "6168546518",
    body: base64EncodedAudio,
    filename: "imagem.jpg",
    caption: "teste",
});

Objeto do retorno:

{
    data: any
    errors: any
    links: any
}

4.2.6. sendVideo

Definição:

sendVideo(args: SendVideoObject): Promise<MoorseResponse>

SendVideoObject

type SendVideoObject = {
    to: string;
    body: string;
    filename: string;
    caption: string;
    integrationId?: string;
};

Exemplo:

moorse.sendVideo({
    to: "6168546518",
    body: base64EncodedVideo,
    filename: "video.mp4",
    caption: "teste",
});

Objeto do retorno:

{
    data: any
    errors: any
    links: any
}

4.2.7. sendVoice

Definição:

sendVoice(args: SendVoiceObject): Promise<MoorseResponse>

SendVoiceObject

type SendVoiceObject = {
    to: string;
    body: string;
    filename: string;
    caption: string;
    integrationId?: string;
};

Exemplo:

moorse.sendVoice({
    to: "6168546518",
    body: base64EncodedVoice,
    filename: "voice.mp3",
    caption: "teste",
});

Objeto do retorno:

{
    data: any
    errors: any
    links: any
}

4.2.8. sendAudio

Definição:

sendAudio(args: SendAudioObject): Promise<MoorseResponse>

SendAudioObject

type SendAudioObject = {
    to: string;
    body: string;
    filename: string;
    caption: string;
    integrationId?: string;
};

Exemplo:

moorse.sendAudio({
    to: "6168546518",
    body: base64EncodedAudio,
    filename: "audio.mp3",
    caption: "teste",
});

Objeto do retorno:

{
    data: any
    errors: any
    links: any
}

4.2.9. getCredits

Definição:

getCredits(argsIntegrationId?: string):Promise<MoorseResponse>

Exemplo:

moorse.getCredits();
moorse.getCredits("16541659814-87451984-56165496");

Objeto do retorno:

{
    data: any
    errors: any
    links: any
}

4.2.10. getIntegrationStatus

Definição:

getIntegrationStatus(argsIntegrationId: string): Promise<MoorseResponse>

Exemplo:

moorse.getIntegrationStatus();
moorse.getIntegrationStatus("16541659814-87451984-56165496");

Objeto do retorno:

{
    data: any
    errors: any
    links: any
}

4.3. Métodos de webhook

4.3.1. getWebhookById

Definição:

getWebhookById(webhookId: string): Promise<MoorseResponse>

Exemplo:

moorse.getWebhookById("webhook-id");

Objeto do retorno:

{
    data: any
    errors: any
    links: any
}

4.3.2. createWebhook

Definição:

createWebhook(args: MoorseWebhookConfig): Promise<MoorseResponse>

MoorseWebhookConfig

type MoorseWebhookConfig = {
    name: string,
    url: string,
    method: string,
    active: boolean,
    integrations?: string[],
    headers?: {
        key: string,
        value: string
    }[],
    answered: boolean,
    readed: boolean,
    received: boolean,
    sended: boolean,
    retries: number,
    timeout: number
}

Exemplo:

moorse.createWebhook({
    name: "webhook teste",
    url: "www.moorse.com",
    method: "POST",
    active: true,
    answered: false,
    readed: false,
    received: true,
    sended: false,
    retries: 2,
    timeout: 30
});

Objeto do retorno:

{
    data: any
    errors: any
    links: any
}

4.3.3. deleteWebhook

Definição:

deleteWebhook(webhookId: string): Promise<MoorseResponse>

Exemplo:

moorse.deleteWebhook("webhook-id");

Objeto do retorno:

{
    data: any
    errors: any
    links: any
}

4.3.4. updateWebhook

Definição:

updateWebhook(webhookId: string, args: MoorseWebhookConfig): Promise<MoorseResponse>

MoorseWebhookConfig

type MoorseWebhookConfig = {
    name: string,
    url: string,
    method: string,
    active: boolean,
    integrations?: string[],
    headers?: {
        key: string,
        value: string
    }[],
    answered: boolean,
    readed: boolean,
    received: boolean,
    sended: boolean,
    retries: number,
    timeout: number
}

Exemplo:

moorse.update("webhook-id",{
    name: "webhook teste",
    url: "www.moorse.com",
    method: "POST",
    active: true,
    answered: false,
    readed: false,
    received: true,
    sended: false,
    retries: 2,
    timeout: 30
});

Objeto do retorno:

{
    data: any
    errors: any
    links: any
}

4.4. Métodos de template

4.4.1. createTemplate

Definição:

createTemplate(args: CreateTemplate): Promise<MoorseResponse>

CreateTemplate

type CreateTemplate = {
    name: string,
    description?: string,
    type: string,
    integrationId: string,
    category: string,
    language: string,
    components: {
        type: string,
        text?: string,
        format?: string,
        example?: any,
        buttons?: string[]
    }[]
}

Exemplo:

moorse.createTemplate({
    name: "template teste",
    type: "STANDARD",
    integrationId: "id-da-integração"
    category: "ACCOUNT_UPDATE",
    language: "pt_BR",
    components: [
        {
            type: "BODY",
            text: "teste"
        }
    ]
});

Objeto do retorno:

{
    data: any
    errors: any
    links: any
}

4.4.2. getTemplates

Definição:

getTemplates(args?: GetTemplatesQueryParams): Promise<MoorseResponse>

GetTemplatesQueryParams

type GetTemplatesQueryParams = {
    category?: string,
    clientId?: string, 
    integrationId?: string,
    name?: string,
    status?: string,
    type?: string
}

Exemplo:

moorse.getTemplates();

Objeto do retorno:

{
    data: any
    errors: any
    links: any
}

4.4.3. getTemplateById

Definição:

getTemplateById(templateId: string): Promise<MoorseResponse>

Exemplo:

moorse.getTemplateById("id-do-template");

Objeto do retorno:

{
    data: any
    errors: any
    links: any
}

4.4.4. deleteTemplateById

Definição:

deleteTemplateById(templateId: string): Promise<MoorseResponse>

Exemplo:

moorse.deleteTemplateById("id-do-template");

Objeto do retorno:

{
    data: any
    errors: any
    links: any
}

4.5. Métodos de faturamento

4.5.1 totalMessages

Definição:

totalMessages(args: TotalMessagesObject): Promise<MoorseResponse>

TotalMessagesObject

type TotalMessagesObject = {
    beginDate: string;
    endDate: string;
};

Exemplo:

moorse.totalMessages({
    beginDate: "2021-06-01",
    endDate: "2021-07-01"
});

Objeto do retorno:

{
    data: any
    errors: any
    links: any
}

4.5.2 totalMessagesPerChannel

Definição:

totalMessagesPerChannel(args: TotalMessagesPerChannelObject): Promise<MoorseResponse>

TotalMessagesPerChannelObject

type TotalMessagesPerChannelObject = {
    beginDate: string;
    endDate: string;
};

Exemplo:

moorse.totalMessagesPerChannel({
    beginDate: "2021-06-01",
    endDate: "2021-07-01"
});

Objeto do retorno:

{
    data: any
    errors: any
    links: any
}

4.5.3 totalMessagesTimeline

Definição:

totalMessagesTimeline(args: TotalMessagesTimelineObject): Promise<MoorseResponse>

TotalMessagesTimelineObject

type TotalMessagesTimelineObject = {
    beginDate: string;
    endDate: string;
};

Exemplo:

moorse.totalMessagesTimeline({
    beginDate: "2021-06-01",
    endDate: "2021-07-01"
});

Objeto do retorno:

{
    data: any
    errors: any
    links: any
}

4.6. Métodos de Sms

4.6.1 sendSms

Definição:

sendSms(args: SendTextObject): Promise<MoorseResponse>

SendTextObject

type SendTextObject ={
    to: string;
    body: string;
    integrationId?: string;
}

Exemplo:

moorse.sendSms({
    to: "16985498456",
    body: "olá"
});

Objeto do retorno:

{
    data: any
    errors: any
    links: any
}

4.7. Métodos de grupos

4.7.1 createGroup

Definição:

createGroup(args: CreateGroupObject):Promise<MoorseResponse>

CreateGroupObject

type CreateGroupObject = {
    name: string,
    description?: string,
    integrationId: string,
    contacts: string[]
}

Exemplo:

await moorse.createGroup({
    contacts: ["5583996833634"],
    integrationId: "d18f348b-381d-42b6-8fa8-960bc96786c0",
    name: "grupo de teste",
    description: "descricao de teste"
});

Objeto do retorno:

{
    data: any
    errors: any
    links: any
}

4.7.2 deleteGroup

Definição:

deleteGroup(groupId: string):Promise<MoorseResponse>

Exemplo:

moorse.deleteGroup("aeb7bcfe-635e-4b3a-9093-b9355fa75");

Objeto do retorno:

{
    data: any
    errors: any
    links: any
}

4.7.3 updateGroup

Definição:

updateGroup(groupId: string, args: UpdateGroupObject):Promise<MoorseResponse>

UpdateGroupObject

type UpdateGroupObject = {
    name: string,
    description: string,
}

Exemplo:

moorse.updateGroup("aeb7bcfe-635e-4b3a-9093-b9355fa75",{
    name: "nome atualizado",
    description: "descrição atualizada"
});

Objeto do retorno:

{
    data: any
    errors: any
    links: any
}

4.7.4 sendTextOnGroup

Definição:

sendTextOnGroup(args: SendTextOnGroupObject):Promise<MoorseResponse>

SendTextOnGroupObject

type SendTextOnGroupObject = {
    groupId: string,
    body: string
}

Exemplo:

moorse.sendTextOnGroup({
    groupId: "aeb7bcfe-635e-4b3a-9093-b9355fa75",
    body: "mensagem de teste"
});

Objeto do retorno:

{
    data: any
    errors: any
    links: any
}

4.7.5 sendFileOnGroup

Definição:

sendFileOnGroup(args: SendFileOnGroupObject):Promise<MoorseResponse>

SendFileOnGroupObject

type SendFileOnGroupObject = {
    groupId: string,
    body: string,
    filename: string,
    caption: string
}

Exemplo:

moorse.sendFileOnGroup({
    groupId: "aeb7bafe-625e-4b3a-9093-b9355739fa75",
    filename: "arquivoTeste.pdf",
    body: "arquivo corrompido",
    caption: "legenda do arquivo"
})

Objeto do retorno:

{
    data: any
    errors: any
    links: any
}

moorse-sdk-node's People

Contributors

douglasalves0 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.