1.4.0 • Published 2 years ago

moorseio v1.4.0

Weekly downloads
-
License
ISC
Repository
github
Last release
2 years ago

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: "sample.email@gmail.com",
    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: "seuemail@gmail.com",
    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:

atributotipoobrigatório?descrição
channelTypestringsimtipo de canal de comunicação desejado (apenas whatsapp é suportado atualmente)
integrationIdstringnãoid de uma integração sua da moorse
emailstringnãoemail do usuário cadastrado no site da moorse
passwordstringnãosenha do usuário cadastrado no site da moorse
tokenstringnãotoken do usuário cadastrado no site da moorse (pode ser encontrado no dashboard do site)
onLoginfunçãonãouma 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("exemplo@mail.com", "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
}
1.4.0

2 years ago

1.3.0

2 years ago

1.2.1

2 years ago

1.2.0

2 years ago

1.1.0

2 years ago

1.0.0

2 years ago