mirror of
https://github.com/bellingcat/auto-archiver-api.git
synced 2026-06-12 13:38:33 +03:00
Standardize router names (#70)
This commit is contained in:
@@ -9,13 +9,13 @@ from prometheus_fastapi_instrumentator import Instrumentator
|
||||
from app.shared.settings import Settings, get_settings
|
||||
from app.shared.task_messaging import get_celery
|
||||
from app.web.config import API_DESCRIPTION, VERSION
|
||||
from app.web.endpoints.default import default_router
|
||||
from app.web.endpoints.interoperability import interoperability_router
|
||||
from app.web.endpoints.sheet import sheet_router
|
||||
from app.web.endpoints.task import task_router
|
||||
from app.web.endpoints.url import url_router
|
||||
from app.web.events import lifespan
|
||||
from app.web.middleware import logging_middleware
|
||||
from app.web.routers.default import router as default_router
|
||||
from app.web.routers.interoperability import router as interoperability_router
|
||||
from app.web.routers.sheet import router as sheet_router
|
||||
from app.web.routers.task import router as task_router
|
||||
from app.web.routers.url import router as url_router
|
||||
from app.web.security import token_api_key_auth
|
||||
|
||||
|
||||
|
||||
@@ -11,22 +11,22 @@ from app.web.db.user_state import UserState
|
||||
from app.web.security import get_user_state
|
||||
|
||||
|
||||
default_router = APIRouter()
|
||||
router = APIRouter()
|
||||
|
||||
|
||||
@default_router.get("/")
|
||||
@router.get("/")
|
||||
async def home() -> JSONResponse:
|
||||
return JSONResponse(
|
||||
{"version": VERSION, "breakingChanges": BREAKING_CHANGES}
|
||||
)
|
||||
|
||||
|
||||
@default_router.get("/health")
|
||||
@router.get("/health")
|
||||
async def health() -> JSONResponse:
|
||||
return JSONResponse({"status": "ok"})
|
||||
|
||||
|
||||
@default_router.get(
|
||||
@router.get(
|
||||
"/user/active", summary="Check if the user is active and can use the tool."
|
||||
)
|
||||
async def active(
|
||||
@@ -35,7 +35,7 @@ async def active(
|
||||
return ActiveUser(active=user.active)
|
||||
|
||||
|
||||
@default_router.get(
|
||||
@router.get(
|
||||
"/user/permissions",
|
||||
summary="Get the user's global 'all' permissions and the permissions for each group they belong to.",
|
||||
)
|
||||
@@ -45,7 +45,7 @@ def get_user_permissions(
|
||||
return user.permissions
|
||||
|
||||
|
||||
@default_router.get(
|
||||
@router.get(
|
||||
"/user/usage",
|
||||
summary="Get the user's monthly URLs/MBs usage along with the total active sheets, breakdown by group.",
|
||||
)
|
||||
@@ -59,6 +59,6 @@ def get_user_usage(
|
||||
return user.usage()
|
||||
|
||||
|
||||
@default_router.get("/favicon.ico", include_in_schema=False)
|
||||
@router.get("/favicon.ico", include_in_schema=False)
|
||||
async def favicon() -> FileResponse:
|
||||
return FileResponse("app/web/static/favicon.ico")
|
||||
@@ -17,13 +17,11 @@ from app.web.security import token_api_key_auth
|
||||
from app.web.utils.misc import get_all_urls
|
||||
|
||||
|
||||
interoperability_router = APIRouter(
|
||||
prefix="/interop", tags=["Interoperability endpoints."]
|
||||
)
|
||||
router = APIRouter(prefix="/interop", tags=["Interoperability endpoints."])
|
||||
|
||||
|
||||
# ----- endpoint to submit data archived elsewhere
|
||||
@interoperability_router.post(
|
||||
@router.post(
|
||||
"/submit-archive",
|
||||
status_code=HTTPStatus.CREATED,
|
||||
summary="Submit a manual archive entry, for data that was archived elsewhere.",
|
||||
@@ -18,14 +18,12 @@ from app.web.db.user_state import UserState
|
||||
from app.web.security import get_user_state
|
||||
|
||||
|
||||
sheet_router = APIRouter(
|
||||
prefix="/sheet", tags=["Google Spreadsheet operations"]
|
||||
)
|
||||
router = APIRouter(prefix="/sheet", tags=["Google Spreadsheet operations"])
|
||||
|
||||
celery = get_celery()
|
||||
|
||||
|
||||
@sheet_router.post(
|
||||
@router.post(
|
||||
"/create",
|
||||
status_code=HTTPStatus.CREATED,
|
||||
summary="Store a new Google Sheet for regular archiving.",
|
||||
@@ -69,7 +67,7 @@ def create_sheet(
|
||||
) from e
|
||||
|
||||
|
||||
@sheet_router.get(
|
||||
@router.get(
|
||||
"/mine",
|
||||
status_code=HTTPStatus.OK,
|
||||
summary="Get the authenticated user's Google Sheets.",
|
||||
@@ -81,7 +79,7 @@ def get_user_sheets(
|
||||
return crud.get_user_sheets(db, user.email)
|
||||
|
||||
|
||||
@sheet_router.delete("/{sheet_id}", summary="Delete a Google Sheet by ID.")
|
||||
@router.delete("/{sheet_id}", summary="Delete a Google Sheet by ID.")
|
||||
def delete_sheet(
|
||||
sheet_id: str,
|
||||
user: UserState = Depends(get_user_state),
|
||||
@@ -92,7 +90,7 @@ def delete_sheet(
|
||||
)
|
||||
|
||||
|
||||
@sheet_router.post(
|
||||
@router.post(
|
||||
"/{sheet_id}/archive",
|
||||
status_code=HTTPStatus.CREATED,
|
||||
summary="Trigger an archiving task for a GSheet you own.",
|
||||
@@ -4,18 +4,19 @@ from fastapi.encoders import jsonable_encoder
|
||||
from fastapi.responses import JSONResponse
|
||||
|
||||
from app.shared import schemas
|
||||
from app.shared.constants import STATUS_FAILURE
|
||||
from app.shared.log import log_error
|
||||
from app.shared.task_messaging import get_celery
|
||||
from app.web.security import get_token_or_user_auth
|
||||
from app.web.utils.misc import custom_jsonable_encoder
|
||||
|
||||
|
||||
task_router = APIRouter(prefix="/task", tags=["Async task operations"])
|
||||
router = APIRouter(prefix="/task", tags=["Async task operations"])
|
||||
|
||||
celery = get_celery()
|
||||
|
||||
|
||||
@task_router.get(
|
||||
@router.get(
|
||||
"/{task_id}",
|
||||
summary="Check the status of an async task by its id, works for URLs and Sheet tasks.",
|
||||
)
|
||||
@@ -24,7 +25,7 @@ def get_status(
|
||||
) -> schemas.TaskResult:
|
||||
task = AsyncResult(task_id, app=celery)
|
||||
try:
|
||||
if task.status == "FAILURE":
|
||||
if task.status == STATUS_FAILURE:
|
||||
# *FAILURE* The task raised an exception, or has exceeded the retry limit.
|
||||
# The :attr:`result` attribute then contains the exception raised by
|
||||
# the task.
|
||||
@@ -43,5 +44,9 @@ def get_status(
|
||||
except Exception as e:
|
||||
log_error(e)
|
||||
return JSONResponse(
|
||||
{"id": task_id, "status": "FAILURE", "result": {"error": str(e)}}
|
||||
{
|
||||
"id": task_id,
|
||||
"status": STATUS_FAILURE,
|
||||
"result": {"error": str(e)},
|
||||
}
|
||||
)
|
||||
@@ -18,12 +18,12 @@ from app.web.security import get_token_or_user_auth, get_user_state
|
||||
from app.web.utils.misc import convert_priority_to_queue_dict
|
||||
|
||||
|
||||
url_router = APIRouter(prefix="/url", tags=["Single URL operations"])
|
||||
router = APIRouter(prefix="/url", tags=["Single URL operations"])
|
||||
|
||||
celery = get_celery()
|
||||
|
||||
|
||||
@url_router.post(
|
||||
@router.post(
|
||||
"/archive",
|
||||
status_code=HTTPStatus.CREATED,
|
||||
summary="Submit a single URL archive request, starts an archiving task.",
|
||||
@@ -77,7 +77,7 @@ def archive_url(
|
||||
)
|
||||
|
||||
|
||||
@url_router.get("/search", summary="Search for archive entries by URL.")
|
||||
@router.get("/search", summary="Search for archive entries by URL.")
|
||||
def search_by_url(
|
||||
url: str,
|
||||
skip: int = 0,
|
||||
@@ -110,9 +110,7 @@ def search_by_url(
|
||||
)
|
||||
|
||||
|
||||
@url_router.delete(
|
||||
"/{archive_id}", summary="Delete a single URL archive by id."
|
||||
)
|
||||
@router.delete("/{archive_id}", summary="Delete a single URL archive by id.")
|
||||
def delete_archive(
|
||||
archive_id: str,
|
||||
user: UserState = Depends(get_user_state),
|
||||
Reference in New Issue
Block a user