tools-kit


Nametools-kit JSON
Version 0.2.0 PyPI version JSON
download
home_page
SummaryGerenciador para facilitar o desenvolvimento padronizado
upload_time2024-03-06 23:10:32
maintainer
docs_urlNone
authorMateus Laurentino de Andrade
requires_python
licenseMIT License
keywords tools kit
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # Tools kit

Desc aqui

## Instalação

Você pode instalar o pacote via pip. Execute o seguinte comando no terminal:
`pip install tools-kit`

## Constantes:
Para utilizar as constantes do pacote, basta importar os arquivos:
`from tools_rest import nome_arquivo_const`
Ex.:
```python
from tools_rest import constants_exc

pegar_conteudo = constants_exc.HTTP_400
print(pegar_conteudo) #impreme o valor: Verifique se os dados enviados estão corretos e completos.
```
Ou:
`from tools_rest.nome_arquivo_const import nome_const`
Ex.:
```python
from tools_rest.constants_exc import HTTP_400

pegar_conteudo = HTTP_400
print(pegar_conteudo) #impreme o valor: Verifique se os dados enviados estão corretos e completos.
```

### Nomes arquivos e constantes:
```python
constants_exc:
        HTTP_400
        HTTP_403
        HTTP_404
        HTTP_500
```

## Exceptions Handler
Para que o handler customizado seja ativado, basta adicionar uma chave em `settings.py`:
```json
CUSTOM_EXCEPTION = {
}
```

#### Configurando
Para adicionar o handler personalizado de exceções rest, basta adicionar o atributo `ADD_CUSTOM_HANDLER` a chave `CUSTOM_EXCEPTION` localizada no arquivo `settings.py`:
```python
CUSTOM_EXCEPTION = {
    'ADD_CUSTOM_HANDLER': True
}
```

Ao receber uma exceção 400, essa personalização irá retornar o seguinte modelo:
```python
{
    'result': null,
    'errors': [
        conteudo da constante constants_exc.HTTP_400 ou personalizado
    ],
    'success': False
}
#Obs.: Quando a exceção for de validators, o conteudo de errors sera 'nomeProp: mensagem de falha'
#Ex.: 'name: Campo obrigatório'
```

Ao receber uma exceção 403, essa personalização irá retornar o seguinte modelo:
```python
{
    'result': null,
    'errors': [
        conteudo da constante constants_exc.HTTP_403 ou personalizado
    ],
    'success': False
}
```

Ao receber uma exceção 404, essa personalização irá retornar o seguinte modelo:
```python
{
    'result': null,
    'errors': [
        conteudo da constante constants_exc.HTTP_404 ou personalizado
    ],
    'success': False
}
```

Ao receber uma exceção 500, essa personalização irá retornar o seguinte modelo:
```python
{
    'result': null,
    'errors': [
        conteudo da constante constants_exc.HTTP_500 ou personalizado
    ],
    'success': False
}
```

#### Handlers urls base
Este modelo é utilizado para não obter mensagens fora de um padrão, trazendo assim o modelo
```python
{
    'result': null,
    'errors': [
        conteudo da constante constants_exc ou personalizado
    ],
    'success': False
}
```

Para adicionar um ou mais handler de urls base, existem duas formas
1 - Adicionando um parametro a chave `CUSTOM_EXCEPTION` no arquivo `settings.py`:
```python
CUSTOM_EXCEPTION = {
    'ADD_CUSTOM_HANDLER': True,
    'URLS_HANDLER': (400, 403, 404, 500)
}
```
Não é necessario ter a chave `ADD_CUSTOM_HANDLER` para utilizar os handlers base.
Pode ter um ou mais codigos, sendo eles `400`, `403`, `404`, `500`

2 - Chamando os metodos criados diretamente no handler, para isso, basta importar os metodos customizados dentro do arquivo `urls`, no diretório que esta o `settings.py` da aplicação.
`from tools_rest.exceptions import exception_400, exception_403, exception_404, exception_500`
`from tools_rest import exceptions`
Ex.:
```python
from tools_rest.exceptions import exception_400, exception_403, exception_404, exception_500

handler400 = exception_400
handler403 = exception_403
handler404 = exception_404
handler500 = exception_500

ou

from tools_rest import exceptions

handler400 = exceptions.exception_400
handler403 = exceptions.exception_403
handler404 = exceptions.exception_404
handler500 = exceptions.exception_500
```
Não é necessario adicionar os quatro handlers, pode ser editado um ou mais.

#### Customizando mensagens
Para customizar mensagens, é necessário adicionar à chave `CUSTOM_EXCEPTION` localizada em `settings.py` o seguinte comando:
```json
CUSTOM_EXCEPTION = {
    'EXCEPTIONS':{
        'HTTP_400': 'Mensagem personalizada para o erro 400',
        'HTTP_403': 'Mensagem personalizada para o erro 403',
        'HTTP_404': 'Mensagem personalizada para o erro 404',
        'HTTP_500': 'Mensagem personalizada para o erro 500'
    }
}
```
Pode alterar um ou mais status, porem, a que não for mencionada a essa chave, utilizarão as padrões que existem.

## Modelo padrão de resultado:
ResultViewModel é um modelo utilizado para padronizar retornos, facilitando a integração de frontend e backend.

```python
{
    'result': 'Modelo generico, podendo ser enviado qualquer tipo de dado',
    'errors': 'Lista de texto de erros',
    'success': 'Boleano que informa se a requisição foi verdadeira ou falsa'
}
```

Para utilizar esse modelo, basta importar:
```python
from tools_rest.response_view import ResultViewModel, sucesso, bad_request, response
```

#### ResultViewModel
Podem ou não receber parametros na criação, sendo eles:
errors = lista de erro.
result = objeto que ira retornar, podendo ser nulo ou não.

Retorno result:
```python
{
    'result': 'modelo' or null,
    'errors': [
        'erros aqui'
    ]
    'success': 'boleano, caso exista alguma msg '
}
```

para criar o modelo, deve-se utilizar o invocador padrão de objetos:
```python
result = ResultViewModel()

ou

result = ResultViewModel('Erro um', 'Erro dois')

ou

lista = []
lista.append('erro um')
lista.append('erro dois')
result = ResultViewModel(lista)

ou

result = ResultViewModel(result=True)
```

#### Funçoes internas
```python
Recebe um modelo por default, retornando ele no função externo response()

def add_result(model)
Retorno:
{
    'result': modelo enviado,
    'errors': []
    'success': True
}
```

```python

Recebe um texto, varios em sequencia e/ou uma lista de erros para utilizar na função exterma response()

def add_errors(*msg:str)
Retorno:
{
    'result': null
    'errors': [
        'Erro aqui'
    ]
    'success': False
}
```

#### Funções externas
```python
Result: Recebe um modelo de retorno.
Errors: Lista de erros virá vazia.
Success: True como resultado.
Essa requisição retorna um status code 200
Retorna um Response()

def sucesso(model)
Retorno:
{
    'result': modelo enviado,
    'errors': []
    'success': True
}
```

```python
Result: Aqui ficará como null.
Errors: Recebe uma str, list(str) ou multiplas str. ex.:bad_request('erro1', 'erro2')
Success: False como resultado.
Essa requisição retorna um status code 400
Retorna um Response()

def bad_request(*msg)
Retorno:
{
    'result': null,
    'errors': [
        'erro1',
        'erro2'
    ]
    'success': True
}
```

```python
Retorna um response totalmente customizado, podendo vir como sucesso ou erro, mas devera ser informado um ResultViewModel como parametro
StatusCode é opcional.
Retorna, 200 se enviado um modelo ao ResultViewModel
         400 se enviado errors ao ResultViewModel
         Personalizado caso o status code seja enviado

def response(resultview : ResultViewModel, status_code: int = None)
Retorno:
{
    'result': 'Modelo enviado',
    'errors': 'Erro(s) enviado(s)',
    'success': 'Caso possua errors, sera False, senão True'
}
```

            

Raw data

            {
    "_id": null,
    "home_page": "",
    "name": "tools-kit",
    "maintainer": "",
    "docs_url": null,
    "requires_python": "",
    "maintainer_email": "",
    "keywords": "tools kit",
    "author": "Mateus Laurentino de Andrade",
    "author_email": "mateus_laurentino@outlook.com",
    "download_url": "https://files.pythonhosted.org/packages/95/8d/415b299ea6d6ad216c61ee45145e6190708fa035657c12d6fbe7b8b5c1d4/tools-kit-0.2.0.tar.gz",
    "platform": null,
    "description": "# Tools kit\n\nDesc aqui\n\n## Instala\u00e7\u00e3o\n\nVoc\u00ea pode instalar o pacote via pip. Execute o seguinte comando no terminal:\n`pip install tools-kit`\n\n## Constantes:\nPara utilizar as constantes do pacote, basta importar os arquivos:\n`from tools_rest import nome_arquivo_const`\nEx.:\n```python\nfrom tools_rest import constants_exc\n\npegar_conteudo = constants_exc.HTTP_400\nprint(pegar_conteudo) #impreme o valor: Verifique se os dados enviados est\u00e3o corretos e completos.\n```\nOu:\n`from tools_rest.nome_arquivo_const import nome_const`\nEx.:\n```python\nfrom tools_rest.constants_exc import HTTP_400\n\npegar_conteudo = HTTP_400\nprint(pegar_conteudo) #impreme o valor: Verifique se os dados enviados est\u00e3o corretos e completos.\n```\n\n### Nomes arquivos e constantes:\n```python\nconstants_exc:\n        HTTP_400\n        HTTP_403\n        HTTP_404\n        HTTP_500\n```\n\n## Exceptions Handler\nPara que o handler customizado seja ativado, basta adicionar uma chave em `settings.py`:\n```json\nCUSTOM_EXCEPTION = {\n}\n```\n\n#### Configurando\nPara adicionar o handler personalizado de exce\u00e7\u00f5es rest, basta adicionar o atributo `ADD_CUSTOM_HANDLER` a chave `CUSTOM_EXCEPTION` localizada no arquivo `settings.py`:\n```python\nCUSTOM_EXCEPTION = {\n    'ADD_CUSTOM_HANDLER': True\n}\n```\n\nAo receber uma exce\u00e7\u00e3o 400, essa personaliza\u00e7\u00e3o ir\u00e1 retornar o seguinte modelo:\n```python\n{\n    'result': null,\n    'errors': [\n        conteudo da constante constants_exc.HTTP_400 ou personalizado\n    ],\n    'success': False\n}\n#Obs.: Quando a exce\u00e7\u00e3o for de validators, o conteudo de errors sera 'nomeProp: mensagem de falha'\n#Ex.: 'name: Campo obrigat\u00f3rio'\n```\n\nAo receber uma exce\u00e7\u00e3o 403, essa personaliza\u00e7\u00e3o ir\u00e1 retornar o seguinte modelo:\n```python\n{\n    'result': null,\n    'errors': [\n        conteudo da constante constants_exc.HTTP_403 ou personalizado\n    ],\n    'success': False\n}\n```\n\nAo receber uma exce\u00e7\u00e3o 404, essa personaliza\u00e7\u00e3o ir\u00e1 retornar o seguinte modelo:\n```python\n{\n    'result': null,\n    'errors': [\n        conteudo da constante constants_exc.HTTP_404 ou personalizado\n    ],\n    'success': False\n}\n```\n\nAo receber uma exce\u00e7\u00e3o 500, essa personaliza\u00e7\u00e3o ir\u00e1 retornar o seguinte modelo:\n```python\n{\n    'result': null,\n    'errors': [\n        conteudo da constante constants_exc.HTTP_500 ou personalizado\n    ],\n    'success': False\n}\n```\n\n#### Handlers urls base\nEste modelo \u00e9 utilizado para n\u00e3o obter mensagens fora de um padr\u00e3o, trazendo assim o modelo\n```python\n{\n    'result': null,\n    'errors': [\n        conteudo da constante constants_exc ou personalizado\n    ],\n    'success': False\n}\n```\n\nPara adicionar um ou mais handler de urls base, existem duas formas\n1 - Adicionando um parametro a chave `CUSTOM_EXCEPTION` no arquivo `settings.py`:\n```python\nCUSTOM_EXCEPTION = {\n    'ADD_CUSTOM_HANDLER': True,\n    'URLS_HANDLER': (400, 403, 404, 500)\n}\n```\nN\u00e3o \u00e9 necessario ter a chave `ADD_CUSTOM_HANDLER` para utilizar os handlers base.\nPode ter um ou mais codigos, sendo eles `400`, `403`, `404`, `500`\n\n2 - Chamando os metodos criados diretamente no handler, para isso, basta importar os metodos customizados dentro do arquivo `urls`, no diret\u00f3rio que esta o `settings.py` da aplica\u00e7\u00e3o.\n`from tools_rest.exceptions import exception_400, exception_403, exception_404, exception_500`\n`from tools_rest import exceptions`\nEx.:\n```python\nfrom tools_rest.exceptions import exception_400, exception_403, exception_404, exception_500\n\nhandler400 = exception_400\nhandler403 = exception_403\nhandler404 = exception_404\nhandler500 = exception_500\n\nou\n\nfrom tools_rest import exceptions\n\nhandler400 = exceptions.exception_400\nhandler403 = exceptions.exception_403\nhandler404 = exceptions.exception_404\nhandler500 = exceptions.exception_500\n```\nN\u00e3o \u00e9 necessario adicionar os quatro handlers, pode ser editado um ou mais.\n\n#### Customizando mensagens\nPara customizar mensagens, \u00e9 necess\u00e1rio adicionar \u00e0 chave `CUSTOM_EXCEPTION` localizada em `settings.py` o seguinte comando:\n```json\nCUSTOM_EXCEPTION = {\n    'EXCEPTIONS':{\n        'HTTP_400': 'Mensagem personalizada para o erro 400',\n        'HTTP_403': 'Mensagem personalizada para o erro 403',\n        'HTTP_404': 'Mensagem personalizada para o erro 404',\n        'HTTP_500': 'Mensagem personalizada para o erro 500'\n    }\n}\n```\nPode alterar um ou mais status, porem, a que n\u00e3o for mencionada a essa chave, utilizar\u00e3o as padr\u00f5es que existem.\n\n## Modelo padr\u00e3o de resultado:\nResultViewModel \u00e9 um modelo utilizado para padronizar retornos, facilitando a integra\u00e7\u00e3o de frontend e backend.\n\n```python\n{\n    'result': 'Modelo generico, podendo ser enviado qualquer tipo de dado',\n    'errors': 'Lista de texto de erros',\n    'success': 'Boleano que informa se a requisi\u00e7\u00e3o foi verdadeira ou falsa'\n}\n```\n\nPara utilizar esse modelo, basta importar:\n```python\nfrom tools_rest.response_view import ResultViewModel, sucesso, bad_request, response\n```\n\n#### ResultViewModel\nPodem ou n\u00e3o receber parametros na cria\u00e7\u00e3o, sendo eles:\nerrors = lista de erro.\nresult = objeto que ira retornar, podendo ser nulo ou n\u00e3o.\n\nRetorno result:\n```python\n{\n    'result': 'modelo' or null,\n    'errors': [\n        'erros aqui'\n    ]\n    'success': 'boleano, caso exista alguma msg '\n}\n```\n\npara criar o modelo, deve-se utilizar o invocador padr\u00e3o de objetos:\n```python\nresult = ResultViewModel()\n\nou\n\nresult = ResultViewModel('Erro um', 'Erro dois')\n\nou\n\nlista = []\nlista.append('erro um')\nlista.append('erro dois')\nresult = ResultViewModel(lista)\n\nou\n\nresult = ResultViewModel(result=True)\n```\n\n#### Fun\u00e7oes internas\n```python\nRecebe um modelo por default, retornando ele no fun\u00e7\u00e3o externo response()\n\ndef add_result(model)\nRetorno:\n{\n    'result': modelo enviado,\n    'errors': []\n    'success': True\n}\n```\n\n```python\n\nRecebe um texto, varios em sequencia e/ou uma lista de erros para utilizar na fun\u00e7\u00e3o exterma response()\n\ndef add_errors(*msg:str)\nRetorno:\n{\n    'result': null\n    'errors': [\n        'Erro aqui'\n    ]\n    'success': False\n}\n```\n\n#### Fun\u00e7\u00f5es externas\n```python\nResult: Recebe um modelo de retorno.\nErrors: Lista de erros vir\u00e1 vazia.\nSuccess: True como resultado.\nEssa requisi\u00e7\u00e3o retorna um status code 200\nRetorna um Response()\n\ndef sucesso(model)\nRetorno:\n{\n    'result': modelo enviado,\n    'errors': []\n    'success': True\n}\n```\n\n```python\nResult: Aqui ficar\u00e1 como null.\nErrors: Recebe uma str, list(str) ou multiplas str. ex.:bad_request('erro1', 'erro2')\nSuccess: False como resultado.\nEssa requisi\u00e7\u00e3o retorna um status code 400\nRetorna um Response()\n\ndef bad_request(*msg)\nRetorno:\n{\n    'result': null,\n    'errors': [\n        'erro1',\n        'erro2'\n    ]\n    'success': True\n}\n```\n\n```python\nRetorna um response totalmente customizado, podendo vir como sucesso ou erro, mas devera ser informado um ResultViewModel como parametro\nStatusCode \u00e9 opcional.\nRetorna, 200 se enviado um modelo ao ResultViewModel\n         400 se enviado errors ao ResultViewModel\n         Personalizado caso o status code seja enviado\n\ndef response(resultview : ResultViewModel, status_code: int = None)\nRetorno:\n{\n    'result': 'Modelo enviado',\n    'errors': 'Erro(s) enviado(s)',\n    'success': 'Caso possua errors, sera False, sen\u00e3o True'\n}\n```\n",
    "bugtrack_url": null,
    "license": "MIT License",
    "summary": "Gerenciador para facilitar o desenvolvimento padronizado",
    "version": "0.2.0",
    "project_urls": null,
    "split_keywords": [
        "tools",
        "kit"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "958d415b299ea6d6ad216c61ee45145e6190708fa035657c12d6fbe7b8b5c1d4",
                "md5": "0b0f5ea4eab40cb4ae17cb50c5315314",
                "sha256": "20b8676a0c925302aae8b688ca21f79d4c6d1750b68c5c2c45926adc9f9fe609"
            },
            "downloads": -1,
            "filename": "tools-kit-0.2.0.tar.gz",
            "has_sig": false,
            "md5_digest": "0b0f5ea4eab40cb4ae17cb50c5315314",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": null,
            "size": 6893,
            "upload_time": "2024-03-06T23:10:32",
            "upload_time_iso_8601": "2024-03-06T23:10:32.014885Z",
            "url": "https://files.pythonhosted.org/packages/95/8d/415b299ea6d6ad216c61ee45145e6190708fa035657c12d6fbe7b8b5c1d4/tools-kit-0.2.0.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2024-03-06 23:10:32",
    "github": false,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "lcname": "tools-kit"
}
        
Elapsed time: 0.19543s