From d16418b5d5548f504a44fe11a3e48393b0a66161 Mon Sep 17 00:00:00 2001 From: Profitroll <47523801+profitrollgame@users.noreply.github.com> Date: Tue, 20 Dec 2022 11:37:32 +0100 Subject: [PATCH] Renamed requests to extensions --- {requests => extensions}/albums.py | 22 +++++++++------------- {requests => extensions}/photos.py | 0 photos_api.py | 2 +- 3 files changed, 10 insertions(+), 14 deletions(-) rename {requests => extensions}/albums.py (90%) rename {requests => extensions}/photos.py (100%) diff --git a/requests/albums.py b/extensions/albums.py similarity index 90% rename from requests/albums.py rename to extensions/albums.py index a2c7b47..af1d036 100644 --- a/requests/albums.py +++ b/extensions/albums.py @@ -5,10 +5,11 @@ from typing import Union from modules.utils import configGet from modules.app import app, check_project_key, get_api_key from modules.database import col_photos, col_albums +from modules.security import User, get_current_active_user from bson.objectid import ObjectId from bson.errors import InvalidId -from fastapi import HTTPException, Depends +from fastapi import HTTPException, Depends, Security from fastapi.responses import UJSONResponse, Response from fastapi.openapi.models import APIKey from starlette.status import HTTP_204_NO_CONTENT, HTTP_401_UNAUTHORIZED, HTTP_404_NOT_FOUND, HTTP_406_NOT_ACCEPTABLE, HTTP_409_CONFLICT @@ -45,21 +46,16 @@ async def album_create(name: str, title: str, apikey: APIKey = Depends(get_api_k else: raise HTTPException(status_code=HTTP_401_UNAUTHORIZED, detail=configGet("key_invalid", "messages")) -@app.get("/albums", response_class=UJSONResponse, description="Find album by name") -async def album_find(q: str, apikey: APIKey = Depends(get_api_key)): +@app.get("/albums", description="Find album by name") +async def album_find(q: str, current_user: User = Security(get_current_active_user, scopes=["list"])): - if (check_project_key("photos", apikey)): + output = {"results": []} + albums = list(col_albums.find( {"user": current_user.user, "name": re.compile(q)} )) - output = {"results": []} - albums = list(col_albums.find( {"name": re.compile(q)} )) + for album in albums: + output["results"].append( {"id": album["_id"].__str__(), "name": album["name"]} ) - for album in albums: - output["results"].append( {"id": album["_id"].__str__(), "name": album["name"]} ) - - return UJSONResponse(output) - - else: - raise HTTPException(status_code=HTTP_401_UNAUTHORIZED, detail=configGet("key_invalid", "messages")) + return UJSONResponse(output) @app.patch("/albums/{id}", response_class=UJSONResponse, description="Modify album's name or title by id") async def album_patch(id: str, name: Union[str, None] = None, title: Union[str, None] = None, apikey: APIKey = Depends(get_api_key)): diff --git a/requests/photos.py b/extensions/photos.py similarity index 100% rename from requests/photos.py rename to extensions/photos.py diff --git a/photos_api.py b/photos_api.py index 2bd70c0..1dc98ca 100644 --- a/photos_api.py +++ b/photos_api.py @@ -13,5 +13,5 @@ async def favicon(): #================================================================================= -dynamic_import_from_src("requests", star_import = True) +dynamic_import_from_src("extensions", star_import = True) #================================================================================= \ No newline at end of file