moorse


Namemoorse JSON
Version 1.0.5 PyPI version JSON
download
home_pagehttps://moorse.io
SummaryA sdk that allows Moorse customers to write some simplified calls to the Moorse resources.
upload_time2023-09-27 16:15:43
maintainer
docs_urlNone
authorMoorse.io
requires_python
licenseMIT
keywords development kit moorse sdk
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # Moorse Python SDK

O moorse sdk surge como solução ao problema que muitos desenvolvedores enfrentam ao necessitar criar suas próprias requisições http aos serviços web 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.

Todos os métodos e rotas aqui citados podem ser encontrados com maiores detalhes na [documentação da Moorse](https://moorse.readme.io/reference/princ%C3%ADpios-b%C3%A1sicos), bem como maiores detalhes sobre nossos produtos.

## Sumário

1. [Início rápido](#1-início-rápido)
2. [Objeto Moorse](#2-objeto-moorse)
3. [Autorização](#3-autorização)
    1. [login](#31-login)
    2. [set_token](#32-set_token)
    3. [get_token](#33-get_token)
    4. [set_email](#34-set_email)
    5. [get_email](#35-get_email)
    6. [set_password](#36-set_password)
    7. [get_password](#37-get_password)
4. [Mensagens](#4-mensagens)
    1. [send_text](#41-send_text)
    2. [send_file](#42-send_file)
    3. [send_template](#43-send_template)
    4. [send_list_menu](#44-send_list_menu)
    5. [send_buttons](#45-send_buttons)
5. [Integrações](#5-integrações)
    1. [get_one](#51-get_one)
    2. [get_all](#52-get_all)
    3. [delete](#53-delete)
    4. [get_status](#54-get_status)
6. [Webhooks](#6-webhooks)
    1. [create](#61-create)
    2. [update](#62-update)
    3. [delete](#63-delete)
    4. [get_one](#64-get_one)
    5. [get_all](#65-get_all)
7. [Templates](#7-templates)
    1. [create](#71-create)
    2. [delete](#72-delete)
    3. [get_one](#73-get_one)
    4. [get_all](#74-get_all)
8. [Relatórios](#8-relatórios)
    1. [get_messages](#81-get_messages)
    2. [get_messages_by_channel](#82-get_messages_by_channel)
    3. [get_messages_by_timeline](#83-get_messages_by_timeline)
9. [Faturamento](#9-faturamento)
    1. [get_credits](#91-get_credits)

## 1. Início Rápido

Antes de tudo, inicie um projeto em python e instale o sdk da Moorse utilizando o comando:

```bash
pip install moorse
```

Após instalada a dependência, crie um objeto Moorse e faça login para estar apto a enviar mensagens utilizando suas integrações.

```python
from moorse import Moorse, CommunicationChannel

moorse = Moorse(
    'seu-email@email.com',
    'sua-senha-da-moorse-aqui',
    CommunicationChannel.WHATSAPP # <--- Tipo do canal de comunicação
)

moorse.auth.login()

moorse.send_text(
    '5583916233664', # <--- Número do destinatário
    'sua-mensagem',
    'id-da-sua-integração-moorse'
)
```

## 2. Objeto Moorse

A classe **Moorse** é o ponto chave de todo o SDK, criando uma instância dela é possível gerenciar integrações, criar templates, configurar webhooks, enviar mensagens e muito mais!

```python
from moorse import Moorse, CommunicationChannel

moorse = Moorse(
    'seu-email@email.com',
    'sua-senha-da-moorse-aqui',
    CommunicationChannel.WHATSAPP # <--- Tipo do canal de comunicação
)
```

Acima é criada uma instância **Moorse** que configura e-mail e senha de uma conta bem como o canal de comunicação desejado para enviar mensagens, essas informações serão úteis para que posteriormente seja possível gerar um token de acesso e consigamos realizar chamadas à API.

## 3. Autorização

Para que seja possível acessar todos os recursos da sua conta é necessário obter seu token de acesso. Desse modo, o objeto Moorse provê um atributo público nomeado *auth*, com ele é possível chamar a rota de login da Moorse que possibilita receber o token em troca do e-mail e senha da conta.

### 3.1. login

Após seu email e senha serem configurados, é possível fazer login e obter seu token de acesso.

#### Definição:

```python
def login(self) -> LoginResponse:
```

#### Exemplo:

```python
from moorse import Moorse, CommunicationChannel

moorse = Moorse(
    'email', 'senha', 
    CommunicationChannel.WHATSAPP
)

moorse.auth.login()
```

Aqui, a linha `moorse.auth.login()`, configura o token de acesso da conta no objeto moorse. Posteriormente isso será importante para que sejamos capazes de executar outros métodos que operam sobre informações pessoais da conta do usuário.

### 3.2 set_token

Método setter padrão, serve para definir o token que se deseja usar diretamente e não precisar fazer chamadas à API da Moorse.

#### Definição:

```python
def set_token(self, token: str) -> None:
```

#### Exemplo:

```python
from moorse import Moorse, CommunicationChannel

moorse = Moorse(
    'email', 'senha', 
    CommunicationChannel.WHATSAPP
)

moorse.auth.set_token('seu-token-secreto')
```

### 3.3 get_token

Método getter padrão, serve para resgatar o token salvo no SDK.

#### Definição:

```python
def get_token(self) -> str:
```

#### Exemplo:

```python
from moorse import Moorse, CommunicationChannel

moorse = Moorse(
    'email', 'senha', 
    CommunicationChannel.WHATSAPP
)

meu_email: str = moorse.auth.get_token()
```

### 3.4 set_email

Método setter padrão, serve para definir o email que se deseja configurar no SDK para realizar o login.

#### Definição:

```python
def set_email(self, email: str) -> None:
```

#### Exemplo:

```python
from moorse import Moorse, CommunicationChannel

moorse = Moorse(
    'email', 'senha', 
    CommunicationChannel.WHATSAPP
)

moorse.auth.set_email('seu-email-moorse')
```

### 3.5 get_email

Método getter padrão, serve para resgatar o email salvo no SDK.

#### Definição:

```python
def get_email(self) -> str:
```

#### Exemplo:

```python
from moorse import Moorse, CommunicationChannel

moorse = Moorse(
    'email', 'senha', 
    CommunicationChannel.WHATSAPP
)

meu_email: str = moorse.auth.get_email()
```

### 3.6. set_password

Método setter padrão, serve para definir a senha que se deseja configurar no SDK para realizar o login.

#### Definição:

```python
def set_password(self, password: str) -> None:
```

#### Exemplo:

```python
from moorse import Moorse, CommunicationChannel

moorse = Moorse(
    'email', 'senha', 
    CommunicationChannel.WHATSAPP
)

moorse.auth.set_password('sua-senha-moorse')
```

### 3.7. get_password

Método getter padrão, serve para resgatar a senha salva no SDK.

#### Definição:

```python
def get_password(self) -> str:
```

#### Exemplo:

```python
from moorse import Moorse, CommunicationChannel

moorse = Moorse(
    'email', 'senha', 
    CommunicationChannel.WHATSAPP
)

minha_senha: str = moorse.auth.get_password()
```

## 4. Mensagens

### 4.1. send_text

Método que serve para enviar uma mensagem de texto utilizando o canal de comunicação(WHATSAPP, INSTAGRAM OU SMS) selecionado na instanciação do objeto Moorse.

#### Definição:

```python
def send_text(
    self, 
    to: str, 
    body: str, 
    integration_id: str
) -> MessageSentResponse:
```

#### Exemplo:

```python
from moorse import Moorse, CommunicationChannel

moorse = Moorse(
    'email', 'senha', 
    CommunicationChannel.WHATSAPP
)

moorse.auth.login()

moorse.send_text(
    '551175839219', # <-- destinatário
    'mensagem-teste', # <-- corpo da mensagem
    'a7eb547b-9bfc-4307-bac0-92bad46da00f' # <-- integração
)
```

### 4.2. send_file

Método que serve para enviar um arquivo utilizando o canal de comunicação WHATSAPP.

*Esse método não tem implementação para INSTAGRAM nem SMS.*

#### Definição:

```python
def send_file(
    self, 
    to: str, 
    body: str, 
    filename: str, 
    integration_id: str, 
    caption: str = None
) -> MessageSentResponse
```

#### Exemplo:

```python
from moorse import Moorse, CommunicationChannel

moorse = Moorse(
    'email', 'senha', 
    CommunicationChannel.WHATSAPP
)

moorse.auth.login()

moorse.send_file(
    '551175839219', # <-- destinatário
    'https://www.w3.org/WAI/ER/tests/xhtml/testfiles/resources/pdf/dummy.pdf', # <-- conteudo do arquivo (url ou base64)
    'dummy.pdf', # <-- nome do arquivo
    'a7eb547b-9bfc-4307-bac0-92bad46da00f' # <-- integração
)
```

### 4.3. send_template

Método que serve para enviar um template utilizando o canal de comunicação WHATSAPP.

*Esse método não tem implementação para INSTAGRAM nem SMS.*

#### Definição:

```python
def send_template(
    self, 
    template: TemplateMessageRequest, 
    integration_id: str
) -> MessageSentResponse:
```

#### Exemplo:

```python
from moorse import Moorse
from moorse import CommunicationChannel
from moorse import TemplateMessageRequest
from moorse import Component

from moorse import ImageParameter
from moorse import TextParameter
from moorse import DocumentParameter
from moorse import VideoParameter

moorse = Moorse(
    'email', 'senha', 
    CommunicationChannel.WHATSAPP
)

moorse.auth.login()
template = TemplateMessageRequest(
    '5511999999999',
    'nome-do-template',
    [
        Component(
            'header',
            [ TextParameter('texto-do-parametro') ]
        ),
        Component(
            'body',
            [
                ImageParameter('https://picsum.photos/200'),
                DocumentParameter('https://www.africau.edu/images/default/sample.pdf'),
                VideoParameter('http://commondatastorage.googleapis.com/gtv-videos-bucket/sample/Sintel.mp4')
            ]
        ),
        Component(
            'footer',
            [ TextParameter('texto-do-parametro') ]
        )
    ]
)

moorse.send_template(
    template,
    'id-integracao'
)
```

### 4.4. send_list_menu

Método que serve para enviar um menu utilizando o canal de comunicação WHATSAPP.

*Esse método não tem implementação para INSTAGRAM nem SMS.*

#### Definição:

```python
def send_list_menu(
    self, 
    menu: MenuMessageRequest, 
    integration_id: str
) -> MessageSentResponse:
```

#### Exemplo:

```python
from moorse import Moorse
from moorse import CommunicationChannel
from moorse import MenuMessageRequest
from moorse import Action
from moorse import Section
from moorse import Row

moorse = Moorse(
    'email', 'senha', 
    CommunicationChannel.WHATSAPP
)

moorse.auth.login()

menu: MenuMessageRequest = MenuMessageRequest(
    '551175839219',
    'titulo-do-menu',
    Action([
        Section('Carnes', [
            Row('1', 'Carne de sol'),
            Row('2', 'Carne de panela'),
            Row('3', 'Carne de churrasco')
        ]),
        Section('Bebidas', [
            Row('4', 'Cerveja'),
            Row('5', 'Refrigerante'),
            Row('6', 'Suco')    
        ])
    ])
)

moorse.send_list_menu(
    menu, 
    'id-integracao'
)
```

### 4.5. send_buttons

Método que serve para enviar botões utilizando o canal de comunicação WHATSAPP.

*Esse método não tem implementação para INSTAGRAM nem SMS.*

#### Definição:

```python
def send_buttons(
    self, 
    buttons: ButtonsMessageRequest, 
    integration_id: str
) -> MessageSentResponse
```

#### Exemplo:

```python
from moorse import Moorse
from moorse import CommunicationChannel
from moorse import ButtonsMessageRequest
from moorse import Button

moorse = Moorse(
    'email', 'senha', 
    CommunicationChannel.WHATSAPP
)

moorse.auth.login()

buttons: ButtonsMessageRequest = ButtonsMessageRequest(
    '551175839219',
    'Teste de botões',
    [
        Button('1', 'botao 1'), 
        Button('2', 'botao 2'), 
        Button('3', 'botao 3')
    ]
)

moorse.send_buttons(
    buttons, 
    'id-integracao'
)
```

## 5. Integrações

Após ter passado da etapa de autorização usando o método login para obtenção do token você está apto a acessar os recursos da sua conta. O que primeiro veremos são as rotas que envolvem integrações Moorse.

### 5.1. get_one

Método responsável por resgatar as informações de uma integração Moorse dado seu id.

#### Definição:

```python
def get_one(self, integration_id: str):
```

#### Exemplo:

```python
from moorse import Moorse
from moorse import CommunicationChannel

moorse = Moorse(
    'email', 'senha', 
    CommunicationChannel.WHATSAPP
)

moorse.auth.login()

response = moorse.integration.get_one(
    'id-integracao'
)
```

### 5.2. get_all

Pega a informação de todas as integrações pertencentes à conta, para isso é apenas necessário a configuração do token da conta.

#### Definição:

```python
def get_all(self):
```

#### Exemplo:

```python
from moorse import Moorse
from moorse import CommunicationChannel

moorse = Moorse(
    'email', 'senha', 
    CommunicationChannel.WHATSAPP
)

moorse.auth.login()

response = moorse.integration.get_all()
```

### 5.3. delete

Método responsável por deletar um integração dado seu id.

#### Definição:

```python
def delete(self, integration_id: str):
```

#### Exemplo:

```python
from moorse import Moorse
from moorse import CommunicationChannel

moorse = Moorse(
    'email', 'senha', 
    CommunicationChannel.WHATSAPP
)

moorse.auth.login()

response = moorse.integration.delete(
    'id-integracao'
)
```

### 5.4. get_status

Método responsável por resgatar o status de uma integração dado seu id.

#### Definição:

```python
def get_status(self, integration_id: str):
```

#### Exemplo:

```python
from moorse import Moorse
from moorse import CommunicationChannel

moorse = Moorse(
    'email', 'senha', 
    CommunicationChannel.WHATSAPP
)

moorse.auth.login()

response = moorse.integration.get_status(
    'id-integracao'
)
```

## 6. Webhooks

Assumindo que o leitor já tenha realizado o login e obtido o seu token de acesso, torna-se possível manipular os webhooks da sua conta para receber requests em uma URL específica quando houverem eventos com as suas integrações. A seguir estão listados os métodos capazes de interagir com os webhooks.

### 6.1. create

Método capaz de criar um webhook em uma conta Moorse, dadas as informações necessárias à sua criação.

#### Definição:

```python
def create(self, webhook: WebhookRequest):
```

#### Exemplo:

```python
from moorse import Moorse
from moorse import CommunicationChannel
from moorse import WebhookRequest
from moorse import WebhookMethod
from moorse import Pair

moorse = Moorse(
    'email', 'senha', 
    CommunicationChannel.WHATSAPP
)

moorse.auth.login()

response = moorse.webhook.create(
    WebhookRequest(
        'nome-webhook', # <-- nome desejado ao novo webhook
        'https://google.com.br', # <-- url à qual a moorse enviará o webhook
        WebhookMethod.GET, # <-- método http do request do webhook
        True, # <-- o webhook vai estar ativo ao ser criado? s/n
        [
            'integracao-1', # integrações associadas
            'integracao-2'  # ao webhook
        ],
        [
            Pair('src', 'moorse'),      # cabeçalhos personalizados
            Pair('channel', 'whatsapp') # ao webhook
        ],
        False, # <-- o webhook notificará mensagens respondidas? s/n
        True,  # <-- o webhook notificará mensagens recebidas? s/n
        False, # <-- o webhook notificará mensagens enviadas? s/n
        1, # número de retentativas 
        10 # timeout (em segundos)
    )
)
```

### 6.2. update

Método capaz de atualizar um webhook dado seu id, de modo semelhante ao método de cima.

#### Definição:

```python
def update(self, webhook_id: str, webhook: WebhookRequest):
```

#### Exemplo:

```python
from moorse import Moorse
from moorse import CommunicationChannel
from moorse import WebhookRequest
from moorse import WebhookMethod
from moorse import Pair

moorse = Moorse(
    'email', 'senha', 
    CommunicationChannel.WHATSAPP
)

moorse.auth.login()

response = moorse.webhook.update(
    'webhook-id', # <-- id do webhook que se deseja atualizar
    WebhookRequest(
        'nome-webhook', # <-- nome desejado ao novo webhook
        'https://google.com.br', # <-- url à qual a moorse enviará o webhook
        WebhookMethod.GET, # <-- método http do request do webhook
        True, # <-- o webhook vai estar ativo ao ser criado? s/n
        [
            'integracao-1', # integrações associadas
            'integracao-2'  # ao webhook
        ],
        [
            Pair('src', 'moorse'),      # cabeçalhos personalizados
            Pair('channel', 'whatsapp') # ao webhook
        ],
        False, # <-- o webhook notificará mensagens respondidas? s/n
        True,  # <-- o webhook notificará mensagens recebidas? s/n
        False, # <-- o webhook notificará mensagens enviadas? s/n
        1, # número de retentativas 
        10 # timeout (em segundos)
    )
)
```

### 6.3. delete

Método capaz de deletar um webhook dado seu id.

#### Definição:

```python
def delete(self, webhook_id: str):
```

#### Exemplo:

```python
from moorse import Moorse
from moorse import CommunicationChannel

moorse = Moorse(
    'email', 'senha', 
    CommunicationChannel.WHATSAPP
)

moorse.auth.login()

response = moorse.webhook.delete('webhook-id')
```

### 6.4. get_one

Método capaz de obter a informação de um webhook dado seu id.

#### Definição:

```python
def get_one(self, webhook_id: str):
```

#### Exemplo:

```python
from moorse import Moorse
from moorse import CommunicationChannel

moorse = Moorse(
    'email', 'senha', 
    CommunicationChannel.WHATSAPP
)

moorse.auth.login()

response = moorse.webhook.get_one('webhook-id')
```

### 6.5. get_all

Método capaz de obter a informação de todos os webhooks de uma conta, este método não recebe informação como parâmetro, já que apenas necessita do token de acesso do dono da conta com os webhooks, e este é configurado com a utilização do método login.

#### Definição:

```python
def get_all(self):
```

#### Exemplo:

```python
from moorse import Moorse
from moorse import CommunicationChannel

moorse = Moorse(
    'email', 'senha', 
    CommunicationChannel.WHATSAPP
)

moorse.auth.login()

response = moorse.webhook.get_all()
```

## 7. Templates

Nesta seção são apresentados os métodos que permitem a um usuário Moorse manipular seus templates e realizar ações como criação, remoção e obtenção das informações de um template.

### 7.1. create

Método responsável por criar um template na sua conta.

#### Definição:

```python
def create(self, webhook: TemplateRequest) -> TemplateDto:
```

#### Exemplo:

```python
from moorse import Moorse
from moorse import CommunicationChannel
from moorse import TemplateRequest
from moorse import TemplateType
from moorse import TemplateCategory
from moorse import TemplateLanguage
from moorse import TemplateDocumentComponent
from moorse import TemplateComponentType
from moorse import TemplateTextComponent
from moorse import TemplateButtonComponent
from moorse import ButtonQuickReply
from moorse import ButtonUrl

moorse = Moorse(
    'email', 'senha', 
    CommunicationChannel.WHATSAPP
)

moorse.auth.login()

# Acessar https://moorse.readme.io/reference/criar-um-novo-template
# Para mais informações sobre criação de templates

response = moorse.template.create(
    TemplateRequest(
        'nome-do-template',
        'descricao-do-template',
        TemplateType.STANDARD, 
        'id-integracao',
        TemplateCategory.AUTO_REPLY,
        TemplateLanguage.PORTUGUESE_BR,
        [
            TemplateDocumentComponent(TemplateComponentType.HEADER),
            TemplateTextComponent(TemplateComponentType.BODY, "Texto do header"),
            TemplateButtonComponent([
                ButtonQuickReply("Texto do botão 1"),
                ButtonQuickReply("Texto do botão 2"),
                ButtonUrl("Texto do botão 3", "https://moorse.io")
            ])
        ]
    )
)
```

### 7.2. delete

Método responsável por deletar um template da sua conta dado o id do template.

#### Definição:

```python
def delete(self, template_id: str) -> TemplateDto:
```

#### Exemplo:

```python
from moorse import Moorse
from moorse import CommunicationChannel

moorse = Moorse(
    'email', 'senha', 
    CommunicationChannel.WHATSAPP
)

moorse.auth.login()

moorse.template.delete('template-id')
```

### 7.3. get_one

Método responsável por obter informação de um template específico de uma conta Moorse dado o id do template buscado.

#### Definição:

```python
def get_one(self, template_id: str) -> TemplateDto:
```

#### Exemplo:

```python
from moorse import Moorse
from moorse import CommunicationChannel

moorse = Moorse(
    'email', 'senha', 
    CommunicationChannel.WHATSAPP
)

moorse.auth.login()

response = moorse.template.get_one('template-id')
```

### 7.4. get_all

Método responsável por obter informação de todos os templates de uma conta Moorse.

#### Definição:

```python
def get_all(self) -> TemplateList:
```

#### Exemplo:

```python
from moorse import Moorse
from moorse import CommunicationChannel

moorse = Moorse(
    'email', 'senha', 
    CommunicationChannel.WHATSAPP
)

moorse.auth.login()

response = moorse.template.get_all()
```

## 8. Relatórios

Com os métodos aqui citados é possível receber informações sobre quantidade, canais e dias que as mensagens da conta foram enviadas. Para que seja possível acessar estes métodos é necessário apenas estar logado na sua conta Moorse e ter obtido o token de acesso com .login().

### 8.1. get_messages

Método que serve para obter informação da quantidade de mensagens enviadas e recebidas e do número de contatos com os quais se manteve contato com alguma integração em um dado período de tempo.

#### Definição:

```python
def get_messages(self, begin: str, end: str) -> MessagesReportDto:
```

#### Exemplo:

```python
from moorse import Moorse
from moorse import CommunicationChannel

moorse = Moorse(
    'email', 'senha', 
    CommunicationChannel.WHATSAPP
)

moorse.auth.login()
moorse.report.get_messages(
    '2019-01-31', # <-- data de início do relatório 
    '2023-01-31'  # <-- data de fim do relatório
)
```

### 8.2. get_messages_by_channel

Método que serve para obter informação da quantidade de mensagens por canal (WHATSAPP, INSTAGRAM ou SMS) com alguma integração em um dado período de tempo.

#### Definição:

```python
def get_messages_by_channel(self, begin: str, end: str) -> MessagesByChannelReportDto:
```

#### Exemplo:

```python
from moorse import Moorse
from moorse import CommunicationChannel

moorse = Moorse(
    'email', 'senha', 
    CommunicationChannel.WHATSAPP
)

moorse.auth.login()
moorse.report.get_messages_by_channel(
    '2019-01-31', # <-- data de início do relatório 
    '2023-01-31'  # <-- data de fim do relatório
)
```

### 8.3. get_messages_by_timeline

Método que serve para obter informação da quantidade de mensagens mês a mês com alguma integração em um dado período de tempo.

#### Definição:

```python
def get_messages_by_timeline(self, begin: str, end: str) -> MessagesByTimelineReportDto:
```

#### Exemplo:

```python
from moorse import Moorse
from moorse import CommunicationChannel

moorse = Moorse(
    'email', 'senha', 
    CommunicationChannel.WHATSAPP
)

moorse.auth.login()
moorse.report.get_messages_by_timeline(
    '2019-01-31', # <-- data de início do relatório 
    '2023-01-31'  # <-- data de fim do relatório
)
```

## 9. Faturamento

Serviço que conta apenas com um método que serve para pegar todos os créditos de uma integração. É necessário que o usuário esteja logado para acessá-lo.

### 9.1. get_credits

Método que serve para resgatar o número de créditos de uma dada integração.

#### Definição:

```python
def get_credits(self, integration_id: str) -> BillingDto:
```

#### Exemplo:

```python
from moorse import Moorse
from moorse import CommunicationChannel

moorse = Moorse(
    'email', 'senha', 
    CommunicationChannel.WHATSAPP
)

moorse.auth.login()

response = moorse.billing.get_credits("id-integracao")
```


            

Raw data

            {
    "_id": null,
    "home_page": "https://moorse.io",
    "name": "moorse",
    "maintainer": "",
    "docs_url": null,
    "requires_python": "",
    "maintainer_email": "",
    "keywords": "DEVELOPMENT KIT,MOORSE,SDK",
    "author": "Moorse.io",
    "author_email": "douglas.alv.sousa@gmail.com",
    "download_url": "https://files.pythonhosted.org/packages/f2/a5/e58690ee0a2fca4269d2ab87568d9b7d511d8390de5a9a054b1c76e0fdfd/moorse-1.0.5.tar.gz",
    "platform": null,
    "description": "# Moorse Python SDK\n\nO moorse sdk surge como solu\u00e7\u00e3o ao problema que muitos desenvolvedores enfrentam ao necessitar criar suas pr\u00f3prias requisi\u00e7\u00f5es http aos servi\u00e7os web da Moorse, com ele, torna-se poss\u00edvel enviar requests \u00e0 nossa API de forma simplificada, sem a necessidade de configurar todos os requests do in\u00edcio ao fim.\n\nTodos os m\u00e9todos e rotas aqui citados podem ser encontrados com maiores detalhes na [documenta\u00e7\u00e3o da Moorse](https://moorse.readme.io/reference/princ%C3%ADpios-b%C3%A1sicos), bem como maiores detalhes sobre nossos produtos.\n\n## Sum\u00e1rio\n\n1. [In\u00edcio r\u00e1pido](#1-in\u00edcio-r\u00e1pido)\n2. [Objeto Moorse](#2-objeto-moorse)\n3. [Autoriza\u00e7\u00e3o](#3-autoriza\u00e7\u00e3o)\n    1. [login](#31-login)\n    2. [set_token](#32-set_token)\n    3. [get_token](#33-get_token)\n    4. [set_email](#34-set_email)\n    5. [get_email](#35-get_email)\n    6. [set_password](#36-set_password)\n    7. [get_password](#37-get_password)\n4. [Mensagens](#4-mensagens)\n    1. [send_text](#41-send_text)\n    2. [send_file](#42-send_file)\n    3. [send_template](#43-send_template)\n    4. [send_list_menu](#44-send_list_menu)\n    5. [send_buttons](#45-send_buttons)\n5. [Integra\u00e7\u00f5es](#5-integra\u00e7\u00f5es)\n    1. [get_one](#51-get_one)\n    2. [get_all](#52-get_all)\n    3. [delete](#53-delete)\n    4. [get_status](#54-get_status)\n6. [Webhooks](#6-webhooks)\n    1. [create](#61-create)\n    2. [update](#62-update)\n    3. [delete](#63-delete)\n    4. [get_one](#64-get_one)\n    5. [get_all](#65-get_all)\n7. [Templates](#7-templates)\n    1. [create](#71-create)\n    2. [delete](#72-delete)\n    3. [get_one](#73-get_one)\n    4. [get_all](#74-get_all)\n8. [Relat\u00f3rios](#8-relat\u00f3rios)\n    1. [get_messages](#81-get_messages)\n    2. [get_messages_by_channel](#82-get_messages_by_channel)\n    3. [get_messages_by_timeline](#83-get_messages_by_timeline)\n9. [Faturamento](#9-faturamento)\n    1. [get_credits](#91-get_credits)\n\n## 1. In\u00edcio R\u00e1pido\n\nAntes de tudo, inicie um projeto em python e instale o sdk da Moorse utilizando o comando:\n\n```bash\npip install moorse\n```\n\nAp\u00f3s instalada a depend\u00eancia, crie um objeto Moorse e fa\u00e7a login para estar apto a enviar mensagens utilizando suas integra\u00e7\u00f5es.\n\n```python\nfrom moorse import Moorse, CommunicationChannel\n\nmoorse = Moorse(\n    'seu-email@email.com',\n    'sua-senha-da-moorse-aqui',\n    CommunicationChannel.WHATSAPP # <--- Tipo do canal de comunica\u00e7\u00e3o\n)\n\nmoorse.auth.login()\n\nmoorse.send_text(\n    '5583916233664', # <--- N\u00famero do destinat\u00e1rio\n    'sua-mensagem',\n    'id-da-sua-integra\u00e7\u00e3o-moorse'\n)\n```\n\n## 2. Objeto Moorse\n\nA classe **Moorse** \u00e9 o ponto chave de todo o SDK, criando uma inst\u00e2ncia dela \u00e9 poss\u00edvel gerenciar integra\u00e7\u00f5es, criar templates, configurar webhooks, enviar mensagens e muito mais!\n\n```python\nfrom moorse import Moorse, CommunicationChannel\n\nmoorse = Moorse(\n    'seu-email@email.com',\n    'sua-senha-da-moorse-aqui',\n    CommunicationChannel.WHATSAPP # <--- Tipo do canal de comunica\u00e7\u00e3o\n)\n```\n\nAcima \u00e9 criada uma inst\u00e2ncia **Moorse** que configura e-mail e senha de uma conta bem como o canal de comunica\u00e7\u00e3o desejado para enviar mensagens, essas informa\u00e7\u00f5es ser\u00e3o \u00fateis para que posteriormente seja poss\u00edvel gerar um token de acesso e consigamos realizar chamadas \u00e0 API.\n\n## 3. Autoriza\u00e7\u00e3o\n\nPara que seja poss\u00edvel acessar todos os recursos da sua conta \u00e9 necess\u00e1rio obter seu token de acesso. Desse modo, o objeto Moorse prov\u00ea um atributo p\u00fablico nomeado *auth*, com ele \u00e9 poss\u00edvel chamar a rota de login da Moorse que possibilita receber o token em troca do e-mail e senha da conta.\n\n### 3.1. login\n\nAp\u00f3s seu email e senha serem configurados, \u00e9 poss\u00edvel fazer login e obter seu token de acesso.\n\n#### Defini\u00e7\u00e3o:\n\n```python\ndef login(self) -> LoginResponse:\n```\n\n#### Exemplo:\n\n```python\nfrom moorse import Moorse, CommunicationChannel\n\nmoorse = Moorse(\n    'email', 'senha', \n    CommunicationChannel.WHATSAPP\n)\n\nmoorse.auth.login()\n```\n\nAqui, a linha `moorse.auth.login()`, configura o token de acesso da conta no objeto moorse. Posteriormente isso ser\u00e1 importante para que sejamos capazes de executar outros m\u00e9todos que operam sobre informa\u00e7\u00f5es pessoais da conta do usu\u00e1rio.\n\n### 3.2 set_token\n\nM\u00e9todo setter padr\u00e3o, serve para definir o token que se deseja usar diretamente e n\u00e3o precisar fazer chamadas \u00e0 API da Moorse.\n\n#### Defini\u00e7\u00e3o:\n\n```python\ndef set_token(self, token: str) -> None:\n```\n\n#### Exemplo:\n\n```python\nfrom moorse import Moorse, CommunicationChannel\n\nmoorse = Moorse(\n    'email', 'senha', \n    CommunicationChannel.WHATSAPP\n)\n\nmoorse.auth.set_token('seu-token-secreto')\n```\n\n### 3.3 get_token\n\nM\u00e9todo getter padr\u00e3o, serve para resgatar o token salvo no SDK.\n\n#### Defini\u00e7\u00e3o:\n\n```python\ndef get_token(self) -> str:\n```\n\n#### Exemplo:\n\n```python\nfrom moorse import Moorse, CommunicationChannel\n\nmoorse = Moorse(\n    'email', 'senha', \n    CommunicationChannel.WHATSAPP\n)\n\nmeu_email: str = moorse.auth.get_token()\n```\n\n### 3.4 set_email\n\nM\u00e9todo setter padr\u00e3o, serve para definir o email que se deseja configurar no SDK para realizar o login.\n\n#### Defini\u00e7\u00e3o:\n\n```python\ndef set_email(self, email: str) -> None:\n```\n\n#### Exemplo:\n\n```python\nfrom moorse import Moorse, CommunicationChannel\n\nmoorse = Moorse(\n    'email', 'senha', \n    CommunicationChannel.WHATSAPP\n)\n\nmoorse.auth.set_email('seu-email-moorse')\n```\n\n### 3.5 get_email\n\nM\u00e9todo getter padr\u00e3o, serve para resgatar o email salvo no SDK.\n\n#### Defini\u00e7\u00e3o:\n\n```python\ndef get_email(self) -> str:\n```\n\n#### Exemplo:\n\n```python\nfrom moorse import Moorse, CommunicationChannel\n\nmoorse = Moorse(\n    'email', 'senha', \n    CommunicationChannel.WHATSAPP\n)\n\nmeu_email: str = moorse.auth.get_email()\n```\n\n### 3.6. set_password\n\nM\u00e9todo setter padr\u00e3o, serve para definir a senha que se deseja configurar no SDK para realizar o login.\n\n#### Defini\u00e7\u00e3o:\n\n```python\ndef set_password(self, password: str) -> None:\n```\n\n#### Exemplo:\n\n```python\nfrom moorse import Moorse, CommunicationChannel\n\nmoorse = Moorse(\n    'email', 'senha', \n    CommunicationChannel.WHATSAPP\n)\n\nmoorse.auth.set_password('sua-senha-moorse')\n```\n\n### 3.7. get_password\n\nM\u00e9todo getter padr\u00e3o, serve para resgatar a senha salva no SDK.\n\n#### Defini\u00e7\u00e3o:\n\n```python\ndef get_password(self) -> str:\n```\n\n#### Exemplo:\n\n```python\nfrom moorse import Moorse, CommunicationChannel\n\nmoorse = Moorse(\n    'email', 'senha', \n    CommunicationChannel.WHATSAPP\n)\n\nminha_senha: str = moorse.auth.get_password()\n```\n\n## 4. Mensagens\n\n### 4.1. send_text\n\nM\u00e9todo que serve para enviar uma mensagem de texto utilizando o canal de comunica\u00e7\u00e3o(WHATSAPP, INSTAGRAM OU SMS) selecionado na instancia\u00e7\u00e3o do objeto Moorse.\n\n#### Defini\u00e7\u00e3o:\n\n```python\ndef send_text(\n    self, \n    to: str, \n    body: str, \n    integration_id: str\n) -> MessageSentResponse:\n```\n\n#### Exemplo:\n\n```python\nfrom moorse import Moorse, CommunicationChannel\n\nmoorse = Moorse(\n    'email', 'senha', \n    CommunicationChannel.WHATSAPP\n)\n\nmoorse.auth.login()\n\nmoorse.send_text(\n    '551175839219', # <-- destinat\u00e1rio\n    'mensagem-teste', # <-- corpo da mensagem\n    'a7eb547b-9bfc-4307-bac0-92bad46da00f' # <-- integra\u00e7\u00e3o\n)\n```\n\n### 4.2. send_file\n\nM\u00e9todo que serve para enviar um arquivo utilizando o canal de comunica\u00e7\u00e3o WHATSAPP.\n\n*Esse m\u00e9todo n\u00e3o tem implementa\u00e7\u00e3o para INSTAGRAM nem SMS.*\n\n#### Defini\u00e7\u00e3o:\n\n```python\ndef send_file(\n    self, \n    to: str, \n    body: str, \n    filename: str, \n    integration_id: str, \n    caption: str = None\n) -> MessageSentResponse\n```\n\n#### Exemplo:\n\n```python\nfrom moorse import Moorse, CommunicationChannel\n\nmoorse = Moorse(\n    'email', 'senha', \n    CommunicationChannel.WHATSAPP\n)\n\nmoorse.auth.login()\n\nmoorse.send_file(\n    '551175839219', # <-- destinat\u00e1rio\n    'https://www.w3.org/WAI/ER/tests/xhtml/testfiles/resources/pdf/dummy.pdf', # <-- conteudo do arquivo (url ou base64)\n    'dummy.pdf', # <-- nome do arquivo\n    'a7eb547b-9bfc-4307-bac0-92bad46da00f' # <-- integra\u00e7\u00e3o\n)\n```\n\n### 4.3. send_template\n\nM\u00e9todo que serve para enviar um template utilizando o canal de comunica\u00e7\u00e3o WHATSAPP.\n\n*Esse m\u00e9todo n\u00e3o tem implementa\u00e7\u00e3o para INSTAGRAM nem SMS.*\n\n#### Defini\u00e7\u00e3o:\n\n```python\ndef send_template(\n    self, \n    template: TemplateMessageRequest, \n    integration_id: str\n) -> MessageSentResponse:\n```\n\n#### Exemplo:\n\n```python\nfrom moorse import Moorse\nfrom moorse import CommunicationChannel\nfrom moorse import TemplateMessageRequest\nfrom moorse import Component\n\nfrom moorse import ImageParameter\nfrom moorse import TextParameter\nfrom moorse import DocumentParameter\nfrom moorse import VideoParameter\n\nmoorse = Moorse(\n    'email', 'senha', \n    CommunicationChannel.WHATSAPP\n)\n\nmoorse.auth.login()\ntemplate = TemplateMessageRequest(\n    '5511999999999',\n    'nome-do-template',\n    [\n        Component(\n            'header',\n            [ TextParameter('texto-do-parametro') ]\n        ),\n        Component(\n            'body',\n            [\n                ImageParameter('https://picsum.photos/200'),\n                DocumentParameter('https://www.africau.edu/images/default/sample.pdf'),\n                VideoParameter('http://commondatastorage.googleapis.com/gtv-videos-bucket/sample/Sintel.mp4')\n            ]\n        ),\n        Component(\n            'footer',\n            [ TextParameter('texto-do-parametro') ]\n        )\n    ]\n)\n\nmoorse.send_template(\n    template,\n    'id-integracao'\n)\n```\n\n### 4.4. send_list_menu\n\nM\u00e9todo que serve para enviar um menu utilizando o canal de comunica\u00e7\u00e3o WHATSAPP.\n\n*Esse m\u00e9todo n\u00e3o tem implementa\u00e7\u00e3o para INSTAGRAM nem SMS.*\n\n#### Defini\u00e7\u00e3o:\n\n```python\ndef send_list_menu(\n    self, \n    menu: MenuMessageRequest, \n    integration_id: str\n) -> MessageSentResponse:\n```\n\n#### Exemplo:\n\n```python\nfrom moorse import Moorse\nfrom moorse import CommunicationChannel\nfrom moorse import MenuMessageRequest\nfrom moorse import Action\nfrom moorse import Section\nfrom moorse import Row\n\nmoorse = Moorse(\n    'email', 'senha', \n    CommunicationChannel.WHATSAPP\n)\n\nmoorse.auth.login()\n\nmenu: MenuMessageRequest = MenuMessageRequest(\n    '551175839219',\n    'titulo-do-menu',\n    Action([\n        Section('Carnes', [\n            Row('1', 'Carne de sol'),\n            Row('2', 'Carne de panela'),\n            Row('3', 'Carne de churrasco')\n        ]),\n        Section('Bebidas', [\n            Row('4', 'Cerveja'),\n            Row('5', 'Refrigerante'),\n            Row('6', 'Suco')    \n        ])\n    ])\n)\n\nmoorse.send_list_menu(\n    menu, \n    'id-integracao'\n)\n```\n\n### 4.5. send_buttons\n\nM\u00e9todo que serve para enviar bot\u00f5es utilizando o canal de comunica\u00e7\u00e3o WHATSAPP.\n\n*Esse m\u00e9todo n\u00e3o tem implementa\u00e7\u00e3o para INSTAGRAM nem SMS.*\n\n#### Defini\u00e7\u00e3o:\n\n```python\ndef send_buttons(\n    self, \n    buttons: ButtonsMessageRequest, \n    integration_id: str\n) -> MessageSentResponse\n```\n\n#### Exemplo:\n\n```python\nfrom moorse import Moorse\nfrom moorse import CommunicationChannel\nfrom moorse import ButtonsMessageRequest\nfrom moorse import Button\n\nmoorse = Moorse(\n    'email', 'senha', \n    CommunicationChannel.WHATSAPP\n)\n\nmoorse.auth.login()\n\nbuttons: ButtonsMessageRequest = ButtonsMessageRequest(\n    '551175839219',\n    'Teste de bot\u00f5es',\n    [\n        Button('1', 'botao 1'), \n        Button('2', 'botao 2'), \n        Button('3', 'botao 3')\n    ]\n)\n\nmoorse.send_buttons(\n    buttons, \n    'id-integracao'\n)\n```\n\n## 5. Integra\u00e7\u00f5es\n\nAp\u00f3s ter passado da etapa de autoriza\u00e7\u00e3o usando o m\u00e9todo login para obten\u00e7\u00e3o do token voc\u00ea est\u00e1 apto a acessar os recursos da sua conta. O que primeiro veremos s\u00e3o as rotas que envolvem integra\u00e7\u00f5es Moorse.\n\n### 5.1. get_one\n\nM\u00e9todo respons\u00e1vel por resgatar as informa\u00e7\u00f5es de uma integra\u00e7\u00e3o Moorse dado seu id.\n\n#### Defini\u00e7\u00e3o:\n\n```python\ndef get_one(self, integration_id: str):\n```\n\n#### Exemplo:\n\n```python\nfrom moorse import Moorse\nfrom moorse import CommunicationChannel\n\nmoorse = Moorse(\n    'email', 'senha', \n    CommunicationChannel.WHATSAPP\n)\n\nmoorse.auth.login()\n\nresponse = moorse.integration.get_one(\n    'id-integracao'\n)\n```\n\n### 5.2. get_all\n\nPega a informa\u00e7\u00e3o de todas as integra\u00e7\u00f5es pertencentes \u00e0 conta, para isso \u00e9 apenas necess\u00e1rio a configura\u00e7\u00e3o do token da conta.\n\n#### Defini\u00e7\u00e3o:\n\n```python\ndef get_all(self):\n```\n\n#### Exemplo:\n\n```python\nfrom moorse import Moorse\nfrom moorse import CommunicationChannel\n\nmoorse = Moorse(\n    'email', 'senha', \n    CommunicationChannel.WHATSAPP\n)\n\nmoorse.auth.login()\n\nresponse = moorse.integration.get_all()\n```\n\n### 5.3. delete\n\nM\u00e9todo respons\u00e1vel por deletar um integra\u00e7\u00e3o dado seu id.\n\n#### Defini\u00e7\u00e3o:\n\n```python\ndef delete(self, integration_id: str):\n```\n\n#### Exemplo:\n\n```python\nfrom moorse import Moorse\nfrom moorse import CommunicationChannel\n\nmoorse = Moorse(\n    'email', 'senha', \n    CommunicationChannel.WHATSAPP\n)\n\nmoorse.auth.login()\n\nresponse = moorse.integration.delete(\n    'id-integracao'\n)\n```\n\n### 5.4. get_status\n\nM\u00e9todo respons\u00e1vel por resgatar o status de uma integra\u00e7\u00e3o dado seu id.\n\n#### Defini\u00e7\u00e3o:\n\n```python\ndef get_status(self, integration_id: str):\n```\n\n#### Exemplo:\n\n```python\nfrom moorse import Moorse\nfrom moorse import CommunicationChannel\n\nmoorse = Moorse(\n    'email', 'senha', \n    CommunicationChannel.WHATSAPP\n)\n\nmoorse.auth.login()\n\nresponse = moorse.integration.get_status(\n    'id-integracao'\n)\n```\n\n## 6. Webhooks\n\nAssumindo que o leitor j\u00e1 tenha realizado o login e obtido o seu token de acesso, torna-se poss\u00edvel manipular os webhooks da sua conta para receber requests em uma URL espec\u00edfica quando houverem eventos com as suas integra\u00e7\u00f5es. A seguir est\u00e3o listados os m\u00e9todos capazes de interagir com os webhooks.\n\n### 6.1. create\n\nM\u00e9todo capaz de criar um webhook em uma conta Moorse, dadas as informa\u00e7\u00f5es necess\u00e1rias \u00e0 sua cria\u00e7\u00e3o.\n\n#### Defini\u00e7\u00e3o:\n\n```python\ndef create(self, webhook: WebhookRequest):\n```\n\n#### Exemplo:\n\n```python\nfrom moorse import Moorse\nfrom moorse import CommunicationChannel\nfrom moorse import WebhookRequest\nfrom moorse import WebhookMethod\nfrom moorse import Pair\n\nmoorse = Moorse(\n    'email', 'senha', \n    CommunicationChannel.WHATSAPP\n)\n\nmoorse.auth.login()\n\nresponse = moorse.webhook.create(\n    WebhookRequest(\n        'nome-webhook', # <-- nome desejado ao novo webhook\n        'https://google.com.br', # <-- url \u00e0 qual a moorse enviar\u00e1 o webhook\n        WebhookMethod.GET, # <-- m\u00e9todo http do request do webhook\n        True, # <-- o webhook vai estar ativo ao ser criado? s/n\n        [\n            'integracao-1', # integra\u00e7\u00f5es associadas\n            'integracao-2'  # ao webhook\n        ],\n        [\n            Pair('src', 'moorse'),      # cabe\u00e7alhos personalizados\n            Pair('channel', 'whatsapp') # ao webhook\n        ],\n        False, # <-- o webhook notificar\u00e1 mensagens respondidas? s/n\n        True,  # <-- o webhook notificar\u00e1 mensagens recebidas? s/n\n        False, # <-- o webhook notificar\u00e1 mensagens enviadas? s/n\n        1, # n\u00famero de retentativas \n        10 # timeout (em segundos)\n    )\n)\n```\n\n### 6.2. update\n\nM\u00e9todo capaz de atualizar um webhook dado seu id, de modo semelhante ao m\u00e9todo de cima.\n\n#### Defini\u00e7\u00e3o:\n\n```python\ndef update(self, webhook_id: str, webhook: WebhookRequest):\n```\n\n#### Exemplo:\n\n```python\nfrom moorse import Moorse\nfrom moorse import CommunicationChannel\nfrom moorse import WebhookRequest\nfrom moorse import WebhookMethod\nfrom moorse import Pair\n\nmoorse = Moorse(\n    'email', 'senha', \n    CommunicationChannel.WHATSAPP\n)\n\nmoorse.auth.login()\n\nresponse = moorse.webhook.update(\n    'webhook-id', # <-- id do webhook que se deseja atualizar\n    WebhookRequest(\n        'nome-webhook', # <-- nome desejado ao novo webhook\n        'https://google.com.br', # <-- url \u00e0 qual a moorse enviar\u00e1 o webhook\n        WebhookMethod.GET, # <-- m\u00e9todo http do request do webhook\n        True, # <-- o webhook vai estar ativo ao ser criado? s/n\n        [\n            'integracao-1', # integra\u00e7\u00f5es associadas\n            'integracao-2'  # ao webhook\n        ],\n        [\n            Pair('src', 'moorse'),      # cabe\u00e7alhos personalizados\n            Pair('channel', 'whatsapp') # ao webhook\n        ],\n        False, # <-- o webhook notificar\u00e1 mensagens respondidas? s/n\n        True,  # <-- o webhook notificar\u00e1 mensagens recebidas? s/n\n        False, # <-- o webhook notificar\u00e1 mensagens enviadas? s/n\n        1, # n\u00famero de retentativas \n        10 # timeout (em segundos)\n    )\n)\n```\n\n### 6.3. delete\n\nM\u00e9todo capaz de deletar um webhook dado seu id.\n\n#### Defini\u00e7\u00e3o:\n\n```python\ndef delete(self, webhook_id: str):\n```\n\n#### Exemplo:\n\n```python\nfrom moorse import Moorse\nfrom moorse import CommunicationChannel\n\nmoorse = Moorse(\n    'email', 'senha', \n    CommunicationChannel.WHATSAPP\n)\n\nmoorse.auth.login()\n\nresponse = moorse.webhook.delete('webhook-id')\n```\n\n### 6.4. get_one\n\nM\u00e9todo capaz de obter a informa\u00e7\u00e3o de um webhook dado seu id.\n\n#### Defini\u00e7\u00e3o:\n\n```python\ndef get_one(self, webhook_id: str):\n```\n\n#### Exemplo:\n\n```python\nfrom moorse import Moorse\nfrom moorse import CommunicationChannel\n\nmoorse = Moorse(\n    'email', 'senha', \n    CommunicationChannel.WHATSAPP\n)\n\nmoorse.auth.login()\n\nresponse = moorse.webhook.get_one('webhook-id')\n```\n\n### 6.5. get_all\n\nM\u00e9todo capaz de obter a informa\u00e7\u00e3o de todos os webhooks de uma conta, este m\u00e9todo n\u00e3o recebe informa\u00e7\u00e3o como par\u00e2metro, j\u00e1 que apenas necessita do token de acesso do dono da conta com os webhooks, e este \u00e9 configurado com a utiliza\u00e7\u00e3o do m\u00e9todo login.\n\n#### Defini\u00e7\u00e3o:\n\n```python\ndef get_all(self):\n```\n\n#### Exemplo:\n\n```python\nfrom moorse import Moorse\nfrom moorse import CommunicationChannel\n\nmoorse = Moorse(\n    'email', 'senha', \n    CommunicationChannel.WHATSAPP\n)\n\nmoorse.auth.login()\n\nresponse = moorse.webhook.get_all()\n```\n\n## 7. Templates\n\nNesta se\u00e7\u00e3o s\u00e3o apresentados os m\u00e9todos que permitem a um usu\u00e1rio Moorse manipular seus templates e realizar a\u00e7\u00f5es como cria\u00e7\u00e3o, remo\u00e7\u00e3o e obten\u00e7\u00e3o das informa\u00e7\u00f5es de um template.\n\n### 7.1. create\n\nM\u00e9todo respons\u00e1vel por criar um template na sua conta.\n\n#### Defini\u00e7\u00e3o:\n\n```python\ndef create(self, webhook: TemplateRequest) -> TemplateDto:\n```\n\n#### Exemplo:\n\n```python\nfrom moorse import Moorse\nfrom moorse import CommunicationChannel\nfrom moorse import TemplateRequest\nfrom moorse import TemplateType\nfrom moorse import TemplateCategory\nfrom moorse import TemplateLanguage\nfrom moorse import TemplateDocumentComponent\nfrom moorse import TemplateComponentType\nfrom moorse import TemplateTextComponent\nfrom moorse import TemplateButtonComponent\nfrom moorse import ButtonQuickReply\nfrom moorse import ButtonUrl\n\nmoorse = Moorse(\n    'email', 'senha', \n    CommunicationChannel.WHATSAPP\n)\n\nmoorse.auth.login()\n\n# Acessar https://moorse.readme.io/reference/criar-um-novo-template\n# Para mais informa\u00e7\u00f5es sobre cria\u00e7\u00e3o de templates\n\nresponse = moorse.template.create(\n    TemplateRequest(\n        'nome-do-template',\n        'descricao-do-template',\n        TemplateType.STANDARD, \n        'id-integracao',\n        TemplateCategory.AUTO_REPLY,\n        TemplateLanguage.PORTUGUESE_BR,\n        [\n            TemplateDocumentComponent(TemplateComponentType.HEADER),\n            TemplateTextComponent(TemplateComponentType.BODY, \"Texto do header\"),\n            TemplateButtonComponent([\n                ButtonQuickReply(\"Texto do bot\u00e3o 1\"),\n                ButtonQuickReply(\"Texto do bot\u00e3o 2\"),\n                ButtonUrl(\"Texto do bot\u00e3o 3\", \"https://moorse.io\")\n            ])\n        ]\n    )\n)\n```\n\n### 7.2. delete\n\nM\u00e9todo respons\u00e1vel por deletar um template da sua conta dado o id do template.\n\n#### Defini\u00e7\u00e3o:\n\n```python\ndef delete(self, template_id: str) -> TemplateDto:\n```\n\n#### Exemplo:\n\n```python\nfrom moorse import Moorse\nfrom moorse import CommunicationChannel\n\nmoorse = Moorse(\n    'email', 'senha', \n    CommunicationChannel.WHATSAPP\n)\n\nmoorse.auth.login()\n\nmoorse.template.delete('template-id')\n```\n\n### 7.3. get_one\n\nM\u00e9todo respons\u00e1vel por obter informa\u00e7\u00e3o de um template espec\u00edfico de uma conta Moorse dado o id do template buscado.\n\n#### Defini\u00e7\u00e3o:\n\n```python\ndef get_one(self, template_id: str) -> TemplateDto:\n```\n\n#### Exemplo:\n\n```python\nfrom moorse import Moorse\nfrom moorse import CommunicationChannel\n\nmoorse = Moorse(\n    'email', 'senha', \n    CommunicationChannel.WHATSAPP\n)\n\nmoorse.auth.login()\n\nresponse = moorse.template.get_one('template-id')\n```\n\n### 7.4. get_all\n\nM\u00e9todo respons\u00e1vel por obter informa\u00e7\u00e3o de todos os templates de uma conta Moorse.\n\n#### Defini\u00e7\u00e3o:\n\n```python\ndef get_all(self) -> TemplateList:\n```\n\n#### Exemplo:\n\n```python\nfrom moorse import Moorse\nfrom moorse import CommunicationChannel\n\nmoorse = Moorse(\n    'email', 'senha', \n    CommunicationChannel.WHATSAPP\n)\n\nmoorse.auth.login()\n\nresponse = moorse.template.get_all()\n```\n\n## 8. Relat\u00f3rios\n\nCom os m\u00e9todos aqui citados \u00e9 poss\u00edvel receber informa\u00e7\u00f5es sobre quantidade, canais e dias que as mensagens da conta foram enviadas. Para que seja poss\u00edvel acessar estes m\u00e9todos \u00e9 necess\u00e1rio apenas estar logado na sua conta Moorse e ter obtido o token de acesso com .login().\n\n### 8.1. get_messages\n\nM\u00e9todo que serve para obter informa\u00e7\u00e3o da quantidade de mensagens enviadas e recebidas e do n\u00famero de contatos com os quais se manteve contato com alguma integra\u00e7\u00e3o em um dado per\u00edodo de tempo.\n\n#### Defini\u00e7\u00e3o:\n\n```python\ndef get_messages(self, begin: str, end: str) -> MessagesReportDto:\n```\n\n#### Exemplo:\n\n```python\nfrom moorse import Moorse\nfrom moorse import CommunicationChannel\n\nmoorse = Moorse(\n    'email', 'senha', \n    CommunicationChannel.WHATSAPP\n)\n\nmoorse.auth.login()\nmoorse.report.get_messages(\n    '2019-01-31', # <-- data de in\u00edcio do relat\u00f3rio \n    '2023-01-31'  # <-- data de fim do relat\u00f3rio\n)\n```\n\n### 8.2. get_messages_by_channel\n\nM\u00e9todo que serve para obter informa\u00e7\u00e3o da quantidade de mensagens por canal (WHATSAPP, INSTAGRAM ou SMS) com alguma integra\u00e7\u00e3o em um dado per\u00edodo de tempo.\n\n#### Defini\u00e7\u00e3o:\n\n```python\ndef get_messages_by_channel(self, begin: str, end: str) -> MessagesByChannelReportDto:\n```\n\n#### Exemplo:\n\n```python\nfrom moorse import Moorse\nfrom moorse import CommunicationChannel\n\nmoorse = Moorse(\n    'email', 'senha', \n    CommunicationChannel.WHATSAPP\n)\n\nmoorse.auth.login()\nmoorse.report.get_messages_by_channel(\n    '2019-01-31', # <-- data de in\u00edcio do relat\u00f3rio \n    '2023-01-31'  # <-- data de fim do relat\u00f3rio\n)\n```\n\n### 8.3. get_messages_by_timeline\n\nM\u00e9todo que serve para obter informa\u00e7\u00e3o da quantidade de mensagens m\u00eas a m\u00eas com alguma integra\u00e7\u00e3o em um dado per\u00edodo de tempo.\n\n#### Defini\u00e7\u00e3o:\n\n```python\ndef get_messages_by_timeline(self, begin: str, end: str) -> MessagesByTimelineReportDto:\n```\n\n#### Exemplo:\n\n```python\nfrom moorse import Moorse\nfrom moorse import CommunicationChannel\n\nmoorse = Moorse(\n    'email', 'senha', \n    CommunicationChannel.WHATSAPP\n)\n\nmoorse.auth.login()\nmoorse.report.get_messages_by_timeline(\n    '2019-01-31', # <-- data de in\u00edcio do relat\u00f3rio \n    '2023-01-31'  # <-- data de fim do relat\u00f3rio\n)\n```\n\n## 9. Faturamento\n\nServi\u00e7o que conta apenas com um m\u00e9todo que serve para pegar todos os cr\u00e9ditos de uma integra\u00e7\u00e3o. \u00c9 necess\u00e1rio que o usu\u00e1rio esteja logado para acess\u00e1-lo.\n\n### 9.1. get_credits\n\nM\u00e9todo que serve para resgatar o n\u00famero de cr\u00e9ditos de uma dada integra\u00e7\u00e3o.\n\n#### Defini\u00e7\u00e3o:\n\n```python\ndef get_credits(self, integration_id: str) -> BillingDto:\n```\n\n#### Exemplo:\n\n```python\nfrom moorse import Moorse\nfrom moorse import CommunicationChannel\n\nmoorse = Moorse(\n    'email', 'senha', \n    CommunicationChannel.WHATSAPP\n)\n\nmoorse.auth.login()\n\nresponse = moorse.billing.get_credits(\"id-integracao\")\n```\n\n",
    "bugtrack_url": null,
    "license": "MIT",
    "summary": "A sdk that allows Moorse customers to write some simplified calls to the Moorse resources.",
    "version": "1.0.5",
    "project_urls": {
        "Homepage": "https://moorse.io"
    },
    "split_keywords": [
        "development kit",
        "moorse",
        "sdk"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "f2a5e58690ee0a2fca4269d2ab87568d9b7d511d8390de5a9a054b1c76e0fdfd",
                "md5": "23860bd7c8db2de31a2be2333ead8c9f",
                "sha256": "f0eeda530b06eb876e99f89c1a413bacb761da8b2581259c2a9274616bf9f0d4"
            },
            "downloads": -1,
            "filename": "moorse-1.0.5.tar.gz",
            "has_sig": false,
            "md5_digest": "23860bd7c8db2de31a2be2333ead8c9f",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": null,
            "size": 29786,
            "upload_time": "2023-09-27T16:15:43",
            "upload_time_iso_8601": "2023-09-27T16:15:43.836888Z",
            "url": "https://files.pythonhosted.org/packages/f2/a5/e58690ee0a2fca4269d2ab87568d9b7d511d8390de5a9a054b1c76e0fdfd/moorse-1.0.5.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2023-09-27 16:15:43",
    "github": false,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "lcname": "moorse"
}
        
Elapsed time: 0.13360s