Code Monkey home page Code Monkey logo

alfred4chalice's People

Contributors

alfmorais avatar baleias avatar brunnacroches avatar bussola avatar gaavro avatar girol avatar guilhermetavares avatar isabela192 avatar isabelatoso avatar isasiqueira avatar kallissin avatar mateuspadua avatar russianbb avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

alfred4chalice's Issues

TimeFilterField

possível solução:

class TimeFilterField(FilterFieldMixin, fields.Time):
    pass

Setup de FilaMorta

image

Hoje depois das tentativas simplesmente adicionamos um erro e nunca mais vemos esses casos, a ideia aqui é salvar as mensagens numa tabela do dynamo (Poderia ser o redis, a discutir) no final da execução das filas. E essas filas para pagamentos por exemplo é crucial termos alguma tratativa de retentiva.

Adicionar `MessageId` no SQSHandler

Atualmente, ao executar uma task que estava na fila, o handle_sqs_message loga diversos items do body porém não loga o id da tasks.

Para efeito de rastreabilidade, seria interessante logar o id (MessageId) conforme exemplo abaixo

Além disso, o metodo apply deveria ter acesso a esse id para outros usos (vide correlation_id)

Exemplo de payload:

{
  'Messages': [
    {
      'MessageId': 'e526e46a-0643-4497-8a1f-e4fe98247da4',
      'ReceiptHandle': 'AQEBVCYeMChTu7boJoat840GIB7ZNRs0onaapHQ6+Ifn6YQp4qeG62496tspsgC2oC8QX1yxNh6ZdSNmqEYjIHkjkHrFBCdTouBZMymspgLwgDcVgdax2VStGEHLCcGMODHxkgAK3hZZDv84rOGYD4aAVFYMjkf2ucLYGxCp8uBWqtLAveR41W32kaIHMW33+O6K7DwjWIy6or68qGDixzk0gEzgwACshB4iPrD2EntNTgU/PvT7e2Kj90lqT29svV4yngoeH0ArGPqrBJrhP8x1Xx9wnUbI2Qb9p6SxzPSWTfYrOxNHXH30Ku/hjwarwlz4PZpnn432S/mFAKB0mH0h3fR5brNLobPk2JXzShfa2WevEMZrgEhujE4oJPmNirBoeWMK3ya38uGQi8GGgKa0Bg==',
      'MD5OfBody': 'cead6e170ff74fb5915648b44e97237a',
      'Body': '{"_func_module": "chalicelib.emails.tasks", "_func_name": "send_email", "args": ["welcome", "[email protected]", "Bem-vindo ao Aplicativo do Cart\\u00e3o de TODOS", {"user": "123"}], "kwargs": {}, "retries": 0}'
    }
  ],
  'ResponseMetadata': {
    'RequestId': '0c104074-d02e-59bc-bfd9-1b50eb068333',
    'HTTPStatusCode': 200,
    'HTTPHeaders': {
      'x-amzn-requestid': '0c104074-d02e-59bc-bfd9-1b50eb068333',
      'date': 'Wed, 15 Jun 2022 19:54:16 GMT',
      'content-type': 'text/xml',
      'content-length': '1174'
    },
    'RetryAttempts': 0
  }
}

Adicionar `next_page` no Response

Atualmente, o Response._query_response retorna algo similar a isso:

body = {
    "data": [instance.__getattribute__(model_property) for instance in data],
    "page": page,
    "per_page": per_page,
    "total": total,
    "total_pages": total_pages,
}

Para facilitar chamada de uma nova pagina, podemos incluir um outro valor next_page.

O next_page deve trazer o número da próxima pagina, caso exista, ou None caso seja a ultima/única pagina.

Documentar a lib

A utilização das funcionalidades podem ser óbvias pra gente. Quando a comunidade começar a usar, podem surgir muitas dúvidas sobre como utilizar.
É importante adicionarmos docstrings nas classes e métodos.
O estilo de documentação do Google é simples e bem funcional, segue um exemplo:

def example(param1, param2):
    """
    This is an example of Google style.

    Args:
        param1: This is the first param.
        param2: This is a second param.

    Returns:
        This is a description of what is returned.

    Raises:
        KeyError: Raises an exception.
    """

...

Adicionar PasswordField

Um campo para validar senha com min_size, max_size e que aceite todos os tipos de caracteres

Adicionar decorator de cache

Vamos adicionar uma funcionalidade aqui no alfred para facilitar o uso do cache em funções, etc.
Então vamos fazer um decorator para ele

# Import the decorator
from alfred.cache.utils import cache_memoize

# Attach decorator to cacheable function with a timeout of 100 seconds.
@cache_memoize(cache_key="funcao_{}", cache_time=100)
def funcao(start, end):
    return random.randint(start, end)

Recommend Projects

  • React photo React

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

  • Vue.js photo Vue.js

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

  • Typescript photo Typescript

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

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

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

Recommend Topics

  • javascript

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

  • web

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

  • server

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

  • Machine learning

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

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

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

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.