maistodos / alfred4chalice Goto Github PK
View Code? Open in Web Editor NEWLicense: Other
License: Other
A ideia é fazer um filtro por um período de tempo. Por exemplo: todas as transações dos últimos 7 dias.
Issue relacionada: https://maistodosti.atlassian.net/browse/APIW-68
possível solução:
class TimeFilterField(FilterFieldMixin, fields.Time):
pass
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.
class BooleanFilterField(FilterFieldMixin, fields.Boolean):
pass
Arrumar import is_br_state_valid
no arquivo marshmallow_utils.fields.br_state.py
Adicionar a opção de 'error_credit' no APPROVE_LIST
para o caso de falta de crédito da API não retornar erro ao usuário
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
}
}
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.
Alterar mensagens de erro do field marshmallow_utils.fields.card_exp_date.CardExpDateField
basic_auth_authorizer error when username/password is empty
BasicAuthUser.to_json error when metadata is None
Cria marshmallow field para validação de CNPJ BR
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.
"""
...
O config default do boto para o s3 não traz a possibilidade de usar criptografia kms.
Subindo a versão do s3 cliente para s3v4
habilitamos esse acesso de forma retrocompatível.
Implementamos filas do tipo FIFO pela primeira vez e notamos a ausência do parametro obrigatório "MessageGroupId".
https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/sqs.html
Vamos trazer para a lib todo o setup de SQS feito na wallet
A ideia é evitar DRY entre os projetos que usam o chalice, além de tentar ajudar outros projetos, etc.
talvez fazer algo como uma sub-organização: chalice_utils/sqs/*
Então vamos fazer o setup do boto:
https://gitlab.com/maistodos/WalletPL/-/blob/develop/wallet/chalicelib/utils/sqs.py
E depois o load e setup das tasks: handle_sqs_message
Um campo para validar senha com min_size
, max_size
e que aceite todos os tipos de caracteres
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)
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.