npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

moorseio

v1.4.0

Published

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 configu

Downloads

8

Readme

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
}