aboutsummaryrefslogtreecommitdiff
path: root/api/routes/log_routes.py
diff options
context:
space:
mode:
Diffstat (limited to 'api/routes/log_routes.py')
-rw-r--r--api/routes/log_routes.py41
1 files changed, 41 insertions, 0 deletions
diff --git a/api/routes/log_routes.py b/api/routes/log_routes.py
index 84b8c51..5875e3b 100644
--- a/api/routes/log_routes.py
+++ b/api/routes/log_routes.py
@@ -21,6 +21,9 @@ async def get_logs(
current_user: Annotated[User, Depends(get_current_user)],
db=Depends(get_db),
):
+ """
+ Get all of the logs associated with the current user
+ """
logs = (
db.query(Log)
.filter(Log.owner == current_user.id)
@@ -34,12 +37,47 @@ async def get_logs(
return logs
+@router.get("/{link}", summary="Get all logs for a specific link")
+async def get_logs_for_link(
+ link: Annotated[str, Path(title="Link to get logs for")],
+ current_user: Annotated[User, Depends(get_current_user)],
+ db=Depends(get_db),
+):
+ """
+ Get all of the logs associated with a specific link
+ - check to make sure the requester is the owner
+ """
+ link = (
+ db.query(Link)
+ .filter(Link.owner == current_user.id, Link.short == link)
+ .first()
+ )
+ if not link:
+ raise HTTPException(
+ status_code=status.HTTP_404_NOT_FOUND, detail="Link not found"
+ )
+ logs = (
+ db.query(Log)
+ .filter(Log.link_id == link.id)
+ .order_by(Log.timestamp.desc())
+ .all()
+ )
+ if not logs:
+ raise HTTPException(
+ status_code=status.HTTP_404_NOT_FOUND, detail="No logs found"
+ )
+ return logs
+
+
@router.get("/{log_id}", summary="Get a specific log")
async def get_log(
log_id: Annotated[int, Path(title="ID of log to delete")],
current_user: Annotated[User, Depends(get_current_user)],
db=Depends(get_db),
):
+ """
+ Get a specific log (given the log ID)
+ """
log = (
db.query(Log)
.filter(Log.id == log_id, Log.owner == current_user.id)
@@ -58,6 +96,9 @@ async def delete_log(
current_user: Annotated[User, Depends(get_current_user)],
db=Depends(get_db),
):
+ """
+ Delete a specific log (given the log ID)
+ """
log = (
db.query(Log)
.filter(Log.id == log_id, Log.owner == current_user.id)