Listener de Captura
Por exemplo, imagine que toda vez que é feita uma requisição à rota ‘/logs’, seu código execute uma tarefa que verifica se os novos logs diferem dos anteriores. Vamos ver como isso pode ser feito:APP_STATUS, LOGS ou BACKUP. Essa função deve receber dois parâmetros:
— before (representa o estado após a requisição)
— after (representa o estado antes da requisição)
O tipo de dado retornado por before e after depende do endpoint que o listener está observando. Se for a rota APP_STATUS, receberá um StatusData; LOGS receberá um LogsData; e BACKUP receberá um BackupData.
Como você deve ter notado no exemplo acima, na primeira comparação de logs, after != before retorna True. Isso ocorre porque after é igual a LogsData(logs=''), já que ainda não há nada armazenado no cache interno.
Informações adicionais sobre este decorator
Informações adicionais sobre este decorator
- Se você usa discord.py ou algum fork, sabe que o que diferencia eventos é o nome
das funções ao redor das quais o decorator é aplicado, mas aqui é diferente. Para
saber qual rota da API o decorator deve observar, usamos o parâmetro
endpoint, que recebe uma classeEndpoint. Portanto, o nome da função decorada fica a seu critério. - A função decorada pode ser qualquer tipo de callable: funções comuns,
corrotinas ou até classes (
__init__será chamado). - Se o endpoint não for [Endpoint.app_status()], [Endpoint.logs()] ou [Endpoint.backup()],
será retornado apenas um parâmetro
response(do tiposquarecloud.http.Response).
Listener de Requisição
Os “request listeners” fazem praticamente a mesma coisa. Aqui você usa o [Client], e o retorno de todos os endpoints são objetossquarecloud.http.Response.
Passando argumentos extras
Você pode passar alguns métodos o argumento nomeadoextra, que será repassado ao seu listener

