226 lines
No EOL
7.9 KiB
Python
226 lines
No EOL
7.9 KiB
Python
# Importação de bibliotecas
|
|
from typing import Optional
|
|
from fastapi import APIRouter, Body, Depends, status, Query
|
|
from actions.jwt.get_current_user import get_current_user
|
|
from packages.v1.administrativo.controllers.log_controller import LogController
|
|
from packages.v1.administrativo.schemas.log_schema import (
|
|
LogSchema,
|
|
LogAuthenticateSchema,
|
|
LogSaveSchema,
|
|
LogUpdateSchema,
|
|
LogIdSchema,
|
|
LogFileSchema,
|
|
LogClientIdSchema
|
|
)
|
|
|
|
# Inicializa o roteador para as rotas de log
|
|
router = APIRouter()
|
|
|
|
# Instânciamento do controller desejado
|
|
log_controller = LogController()
|
|
|
|
# Lista todos os logs com paginação
|
|
@router.get('/',
|
|
status_code=status.HTTP_200_OK,
|
|
summary='Lista todos os logs cadastrados com paginação',
|
|
response_description='Lista todos os logs cadastrados')
|
|
async def index(
|
|
first: int = Query(20, description="Total de registros por página (LIMIT)"),
|
|
skip: int = Query(0, description="Total de registros a pular (OFFSET)"),
|
|
current_user: dict = Depends(get_current_user)
|
|
):
|
|
|
|
# Busca todos os logs cadastrados, passando os parâmetros de paginação
|
|
response = log_controller.index(first=first, skip=skip)
|
|
|
|
# Retorna os dados localizados com os metadados de paginação
|
|
return response
|
|
|
|
# Localiza um log pelo campo 'file' (adaptado de /email)
|
|
@router.get('/file',
|
|
status_code=status.HTTP_200_OK,
|
|
summary='Busca um registro em específico pelo nome do arquivo (file)',
|
|
response_description='Busca um registro em específico')
|
|
async def getFile(file: str, current_user: dict = Depends(get_current_user)):
|
|
|
|
# Cria o schema com os dados recebidos
|
|
log_schema = LogFileSchema(file=file)
|
|
|
|
# Busca um log específico pelo arquivo
|
|
response = log_controller.getFile(log_schema)
|
|
|
|
# Retorna os dados localizados
|
|
return response
|
|
|
|
# Lista todos os logs de um determinado cliente
|
|
@router.get('/client/{client_id}',
|
|
status_code=status.HTTP_200_OK,
|
|
summary='Lista todos os logs cadastrados de um determinado cliente',
|
|
response_description='Lista todos os logs cadastrados de um cliente específico')
|
|
async def logClient(client_id: int, current_user: dict = Depends(get_current_user)):
|
|
|
|
# Busca todos os logs cadastrados, passando os parâmetros de paginação
|
|
response = log_controller.logClient(client_id=client_id)
|
|
|
|
# Retorna os dados localizados com os metadados de paginação
|
|
return response
|
|
|
|
# Localiza um log pelo ID
|
|
@router.get('/{log_id}',
|
|
status_code=status.HTTP_200_OK,
|
|
summary='Busca um registro em específico pelo ID do log',
|
|
response_description='Busca um registro em específico')
|
|
async def show(log_id: int, current_user: dict = Depends(get_current_user)):
|
|
|
|
# Cria o schema com os dados recebidos
|
|
log_schema = LogClientIdSchema(log_id=log_id)
|
|
|
|
# Busca um log específico pelo ID
|
|
response = log_controller.show(log_schema)
|
|
|
|
# Retorna os dados localizados
|
|
return response
|
|
|
|
# Cadastro de logs
|
|
@router.post('/',
|
|
status_code=status.HTTP_201_CREATED, # Alterado para 201 Created, mais apropriado para POST
|
|
summary='Cadastra um novo log',
|
|
response_description='Cadastra um log')
|
|
async def save(log_schema: LogSaveSchema, current_user: dict = Depends(get_current_user)):
|
|
|
|
# Efetua o cadastro do log junto ao banco de dados
|
|
response = log_controller.save(log_schema)
|
|
|
|
# Retorna os dados localizados
|
|
return response
|
|
|
|
# Atualiza os dados de log
|
|
@router.put('/{log_id}',
|
|
status_code=status.HTTP_200_OK,
|
|
summary='Atualiza um log',
|
|
response_description='Atualiza um log')
|
|
async def update(log_id: int, log_schema: LogUpdateSchema, current_user: dict = Depends(get_current_user)):
|
|
|
|
# Efetua a atualização dos dados do log
|
|
response = log_controller.update(log_id, log_schema)
|
|
|
|
# Retorna os dados localizados
|
|
return response
|
|
|
|
# Exclui um determinado log
|
|
@router.delete('/{log_id}',
|
|
status_code=status.HTTP_200_OK,
|
|
summary='Remove um log',
|
|
response_description='Remove um log')
|
|
async def delete(log_id: int, current_user: dict = Depends(get_current_user)):
|
|
|
|
# Cria o schema com os dados recebidos
|
|
log_schema = LogIdSchema(log_id=log_id)
|
|
|
|
# Efetua a exclusão de um determinado log
|
|
response = log_controller.delete(log_schema)
|
|
|
|
# Retorna os dados localizados
|
|
return response
|
|
|
|
|
|
# Localiza um log pelo CLIENT_ID
|
|
@router.get('/ged/{client_id}',
|
|
status_code=status.HTTP_200_OK,
|
|
summary='Busca o último registro pelo CLIENT_ID',
|
|
response_description='Busca registros específicos de um cliente no GED')
|
|
async def show(client_id: int, current_user: dict = Depends(get_current_user)):
|
|
|
|
# Cria o schema com os dados recebidos
|
|
log_schema = LogClientIdSchema(client_id=client_id)
|
|
|
|
# Busca um log específico pelo ID
|
|
response = log_controller.getGed(log_schema)
|
|
|
|
# Retorna os dados localizados
|
|
return response
|
|
|
|
|
|
# Localiza um log pelo CLIENT_ID
|
|
@router.get('/server/{client_id}',
|
|
status_code=status.HTTP_200_OK,
|
|
summary='Busca o último registro pelo CLIENT_ID',
|
|
response_description='Busca registros específicos de um cliente no GED')
|
|
async def show(client_id: int, current_user: dict = Depends(get_current_user)):
|
|
|
|
# Cria o schema com os dados recebidos
|
|
log_schema = LogClientIdSchema(client_id=client_id)
|
|
|
|
# Busca um log específico pelo ID
|
|
response = log_controller.getServer(log_schema)
|
|
|
|
# Retorna os dados localizados
|
|
return response
|
|
|
|
|
|
# Localiza um log pelo CLIENT_ID
|
|
@router.get('/database/{client_id}',
|
|
status_code=status.HTTP_200_OK,
|
|
summary='Busca o último registro pelo CLIENT_ID',
|
|
response_description='Busca registros específicos de um cliente no Database')
|
|
async def show(client_id: int, current_user: dict = Depends(get_current_user)):
|
|
|
|
# Cria o schema com os dados recebidos
|
|
log_schema = LogClientIdSchema(client_id=client_id)
|
|
|
|
# Busca um log específico pelo ID
|
|
response = log_controller.getDatabase(log_schema)
|
|
|
|
# Retorna os dados localizados
|
|
return response
|
|
|
|
|
|
# Localiza um log pelo CLIENT_ID
|
|
@router.get('/backup/{client_id}',
|
|
status_code=status.HTTP_200_OK,
|
|
summary='Busca o último registro pelo CLIENT_ID',
|
|
response_description='Busca registros específicos de um cliente no Backup')
|
|
async def show(client_id: int, current_user: dict = Depends(get_current_user)):
|
|
|
|
# Cria o schema com os dados recebidos
|
|
log_schema = LogClientIdSchema(client_id=client_id)
|
|
|
|
# Busca um log específico pelo ID
|
|
response = log_controller.getBackup(log_schema)
|
|
|
|
# Retorna os dados localizados
|
|
return response
|
|
|
|
|
|
# Localiza um log pelo CLIENT_ID
|
|
@router.get('/disk/{client_id}',
|
|
status_code=status.HTTP_200_OK,
|
|
summary='Busca o último registro pelo CLIENT_ID',
|
|
response_description='Busca registros específicos de um cliente no Backup')
|
|
async def show(client_id: int, current_user: dict = Depends(get_current_user)):
|
|
|
|
# Cria o schema com os dados recebidos
|
|
log_schema = LogClientIdSchema(client_id=client_id)
|
|
|
|
# Busca um log específico pelo ID
|
|
response = log_controller.getDisk(log_schema)
|
|
|
|
# Retorna os dados localizados
|
|
return response
|
|
|
|
|
|
# Localiza um log pelo CLIENT_ID
|
|
@router.get('/warning/{client_id}',
|
|
status_code=status.HTTP_200_OK,
|
|
summary='Busca o último registro pelo CLIENT_ID',
|
|
response_description='Busca registros específicos de um cliente no Backup')
|
|
async def show(client_id: int, current_user: dict = Depends(get_current_user)):
|
|
|
|
# Cria o schema com os dados recebidos
|
|
log_schema = LogClientIdSchema(client_id=client_id)
|
|
|
|
# Busca um log específico pelo ID
|
|
response = log_controller.getWarning(log_schema)
|
|
|
|
# Retorna os dados localizados
|
|
return response |