diff --git a/backend/app/api/v1/api.py b/backend/app/api/v1/api.py index 7e3ea5eb..277e92f3 100644 --- a/backend/app/api/v1/api.py +++ b/backend/app/api/v1/api.py @@ -1,10 +1,8 @@ # -*- coding: utf-8 -*- -from app.api.v1 import labelers, prompts, tasks, tasks2 +from app.api.v1 import tasks, tasks2 from fastapi import APIRouter api_router = APIRouter() -api_router.include_router(labelers.router, prefix="/labelers", tags=["labelers"]) -api_router.include_router(prompts.router, prefix="/prompts", tags=["prompts"]) api_router.include_router(tasks.router, prefix="/tasks", tags=["tasks"]) api_router.include_router(tasks2.router, prefix="/task2", tags=["task2"]) # temporary diff --git a/backend/app/api/v1/labelers.py b/backend/app/api/v1/labelers.py deleted file mode 100644 index d583da65..00000000 --- a/backend/app/api/v1/labelers.py +++ /dev/null @@ -1,114 +0,0 @@ -# -*- coding: utf-8 -*- -from typing import Any, List - -from app import crud, schemas -from app.api import deps -from fastapi import APIRouter, Depends, HTTPException -from fastapi.security.api_key import APIKey -from sqlmodel import Session -from starlette.status import HTTP_400_BAD_REQUEST, HTTP_404_NOT_FOUND - -router = APIRouter() - - -@router.get("/", response_model=List[schemas.Labeler]) -def read_labelers( - db: Session = Depends(deps.get_db), - api_key: APIKey = Depends(deps.get_api_key), - begin_id: int = 0, - limit: int = 100, -) -> Any: - """ - Retrieve labelers. - """ - deps.api_auth(api_key, db) - if limit > 10000: - raise HTTPException(status_code=HTTP_400_BAD_REQUEST, detail="Bad request") - labelers = crud.labeler.get_multi(db, begin_id=begin_id, limit=limit) - return labelers - - -@router.post("/", response_model=schemas.Labeler) -def create_labeler( - *, - db: Session = Depends(deps.get_db), - api_key: APIKey = Depends(deps.get_api_key), - item_in: schemas.LabelerCreate, -) -> Any: - """ - Create new labeler. - """ - deps.api_auth(api_key, db) - item = crud.labeler.create(db=db, obj_in=item_in) - return item - - -@router.put("/{id}", response_model=schemas.Labeler) -def update_labeler( - *, - db: Session = Depends(deps.get_db), - api_key: APIKey = Depends(deps.get_api_key), - id: int, - item_in: schemas.LabelerUpdate, -) -> Any: - """ - Update a labeler. - """ - deps.api_auth(api_key, db) - item = crud.labeler.get(db=db, id=id) - if not item: - raise HTTPException(status_code=HTTP_404_NOT_FOUND, detail="Item not found") - item = crud.labeler.update(db=db, db_obj=item, obj_in=item_in) - return item - - -@router.get("/by-username", response_model=schemas.Labeler) -def read_labeler_by_username( - *, - db: Session = Depends(deps.get_db), - api_key: APIKey = Depends(deps.get_api_key), - discord_username: str, -) -> Any: - """ - Get labeler by ID. - """ - deps.api_auth(api_key, db) - item = crud.labeler.get_by_discord_username(db=db, discord_username=discord_username) - if not item: - raise HTTPException(status_code=404, detail="Item not found") - return item - - -@router.get("/{id}", response_model=schemas.Labeler) -def read_labeler( - *, - db: Session = Depends(deps.get_db), - api_key: APIKey = Depends(deps.get_api_key), - id: int, -) -> Any: - """ - Get labeler by ID. - """ - deps.api_auth(api_key, db) - item = crud.labeler.get(db=db, id=id) - if not item: - raise HTTPException(status_code=HTTP_404_NOT_FOUND, detail="Item not found") - return item - - -@router.delete("/{id}", response_model=schemas.Labeler) -def delete_labeler( - *, - db: Session = Depends(deps.get_db), - api_key: APIKey = Depends(deps.get_api_key), - id: int, -) -> Any: - """ - Delete a labeler. - """ - deps.api_auth(api_key, db) - labeler = crud.labeler.get(db=db, id=id) - if not labeler: - raise HTTPException(status_code=HTTP_404_NOT_FOUND, detail="Item not found") - labeler = crud.labeler.remove(db=db, id=id) - return labeler diff --git a/backend/app/api/v1/prompts.py b/backend/app/api/v1/prompts.py deleted file mode 100644 index 2e0947e5..00000000 --- a/backend/app/api/v1/prompts.py +++ /dev/null @@ -1,91 +0,0 @@ -# -*- coding: utf-8 -*- -from typing import Any, List - -from app import crud, schemas -from app.api import deps -from fastapi import APIRouter, Depends, HTTPException -from fastapi.security.api_key import APIKey -from sqlmodel import Session -from starlette.status import HTTP_400_BAD_REQUEST, HTTP_401_UNAUTHORIZED, HTTP_404_NOT_FOUND - -router = APIRouter() - - -@router.get("/", response_model=List[schemas.Prompt]) -def read_prompts( - db: Session = Depends(deps.get_db), - api_key: APIKey = Depends(deps.get_api_key), - begin_id: int = 0, - limit: int = 1000, -) -> Any: - """ - Retrieve prompts. - """ - deps.api_auth(api_key, db) - if limit > 10000: - raise HTTPException(status_code=HTTP_400_BAD_REQUEST, detail="Bad request") - return crud.prompt.get_multi(db, begin_id=begin_id, limit=limit) - - -@router.post("/", response_model=schemas.Prompt) -def create_prompt( - *, - db: Session = Depends(deps.get_db), - api_key: APIKey = Depends(deps.get_api_key), - item_in: schemas.PromptCreate, -) -> Any: - """ - Create new prompt. - """ - deps.api_auth(api_key, db) - if item_in.labeler_id is None: - if item_in.discord_username is None: - raise HTTPException(status_code=HTTP_400_BAD_REQUEST, detail="Bad request") - labeler = crud.labeler.get_by_discord_username(db=db, discord_username=item_in.discord_username) - else: - labeler = crud.labeler.get(db=db, id=item_in.labeler_id) - - if labeler is None: - raise HTTPException(status_code=HTTP_404_NOT_FOUND, detail="Invalid labeler user name") - if not labeler.is_enabled: - raise HTTPException(status_code=HTTP_401_UNAUTHORIZED, detail="Labeler disabled") - - item_in.labeler_id = labeler.id - item_in.discord_username = None - item = crud.prompt.create(db=db, obj_in=item_in) - return item - - -@router.get("/{id}", response_model=schemas.Prompt) -def read_prompt( - *, - db: Session = Depends(deps.get_db), - api_key: APIKey = Depends(deps.get_api_key), - id: int, -) -> Any: - """ - Get prompt by ID. - """ - deps.api_auth(api_key, db) - item = crud.prompt.get(db=db, id=id) - if not item: - raise HTTPException(status_code=HTTP_404_NOT_FOUND, detail="Item not found") - return item - - -@router.delete("/{id}", response_model=schemas.Prompt) -def delete_prompt( - *, - db: Session = Depends(deps.get_db), - api_key: APIKey = Depends(deps.get_api_key), - id: int, -) -> Any: - """ - Delete a prompt. - """ - deps.api_auth(api_key, db) - item = crud.prompt.get(db=db, id=id) - if not item: - raise HTTPException(status_code=HTTP_404_NOT_FOUND, detail="Item not found") - item = crud.prompt.remove(db=db, id=id) - return item diff --git a/backend/app/crud/__init__.py b/backend/app/crud/__init__.py index 50c02e61..5ee00d4a 100644 --- a/backend/app/crud/__init__.py +++ b/backend/app/crud/__init__.py @@ -1,5 +1,2 @@ # -*- coding: utf-8 -*- -from .crud_labeler import labeler -from .crud_prompt import prompt - -__all__ = ["labeler", "prompt"] +__all__ = [] diff --git a/backend/app/crud/crud_labeler.py b/backend/app/crud/crud_labeler.py deleted file mode 100644 index 0c388feb..00000000 --- a/backend/app/crud/crud_labeler.py +++ /dev/null @@ -1,15 +0,0 @@ -# -*- coding: utf-8 -*- -from typing import Optional - -from app.crud.base import CRUDBase -from app.models.labeler import Labeler -from app.schemas.labeler import LabelerCreate, LabelerUpdate -from sqlmodel import Session - - -class CRUDLabeler(CRUDBase[Labeler, LabelerCreate, LabelerUpdate]): - def get_by_discord_username(self, db: Session, discord_username: str) -> Optional[Labeler]: - return db.query(Labeler).filter(Labeler.discord_username == discord_username).first() - - -labeler = CRUDLabeler(Labeler) diff --git a/backend/app/crud/crud_prompt.py b/backend/app/crud/crud_prompt.py deleted file mode 100644 index cf625084..00000000 --- a/backend/app/crud/crud_prompt.py +++ /dev/null @@ -1,11 +0,0 @@ -# -*- coding: utf-8 -*- -from app.crud.base import CRUDBase -from app.models.prompt import Prompt -from app.schemas.prompt import PromptCreate - - -class CRUDPrompt(CRUDBase[Prompt, PromptCreate, None]): - pass - - -prompt = CRUDPrompt(Prompt) diff --git a/backend/app/models/__init__.py b/backend/app/models/__init__.py index e05e4936..414ec385 100644 --- a/backend/app/models/__init__.py +++ b/backend/app/models/__init__.py @@ -1,12 +1,9 @@ # -*- coding: utf-8 -*- from .api_client import ApiClient -from .labeler import Labeler from .person import Person from .person_stats import PersonStats from .post import Post from .post_reaction import PostReaction -from .prompt import Prompt -from .service_client import ServiceClient from .work_package import WorkPackage __all__ = [ @@ -16,7 +13,4 @@ __all__ = [ "Post", "PostReaction", "WorkPackage", - "Labeler", - "Prompt", - "ServiceClient", ] diff --git a/backend/app/models/labeler.py b/backend/app/models/labeler.py deleted file mode 100644 index 9ea4251b..00000000 --- a/backend/app/models/labeler.py +++ /dev/null @@ -1,18 +0,0 @@ -# -*- coding: utf-8 -*- -from datetime import datetime -from typing import Optional - -import sqlalchemy as sa -from sqlmodel import Field, SQLModel - - -class Labeler(SQLModel, table=True): - __tablename__ = "labeler" - id: Optional[int] = Field(default=None, primary_key=True) - display_name: str - discord_username: str - created_date: Optional[datetime] = Field( - sa_column=sa.Column(sa.DateTime(), nullable=False, server_default=sa.func.current_timestamp()) - ) - is_enabled: bool - notes: str diff --git a/backend/app/models/prompt.py b/backend/app/models/prompt.py deleted file mode 100644 index edd1bde1..00000000 --- a/backend/app/models/prompt.py +++ /dev/null @@ -1,18 +0,0 @@ -# -*- coding: utf-8 -*- -from datetime import datetime -from typing import Optional - -import sqlalchemy as sa -from sqlmodel import Field, SQLModel - - -class Prompt(SQLModel, table=True): - __tablename__ = "prompt" - id: Optional[int] = Field(default=None, primary_key=True) - labeler_id: Optional[int] = Field(default=None, foreign_key="labeler.id") - prompt: str - response: Optional[str] - lang: Optional[str] - created_date: Optional[datetime] = Field( - sa_column=sa.Column(sa.DateTime(), nullable=False, server_default=sa.func.current_timestamp()) - ) diff --git a/backend/app/models/service_client.py b/backend/app/models/service_client.py deleted file mode 100644 index 1a60b0be..00000000 --- a/backend/app/models/service_client.py +++ /dev/null @@ -1,16 +0,0 @@ -# -*- coding: utf-8 -*- -from typing import Optional - -from sqlmodel import Field, SQLModel - - -class ServiceClient(SQLModel, table=True): - __tablename__ = "service_client" - id: Optional[int] = Field(default=None, primary_key=True) - name: str - api_key: str - service_admin_email: Optional[str] = None - can_append: bool = True - can_write: bool = False - can_delete: bool = False - can_read: bool = True diff --git a/backend/app/schemas/__init__.py b/backend/app/schemas/__init__.py index bc2e8709..5ee00d4a 100644 --- a/backend/app/schemas/__init__.py +++ b/backend/app/schemas/__init__.py @@ -1,5 +1,2 @@ # -*- coding: utf-8 -*- -from .labeler import Labeler, LabelerCreate, LabelerUpdate -from .prompt import Prompt, PromptCreate - -__all__ = ["Labeler", "LabelerCreate", "LabelerUpdate", "Prompt", "PromptCreate"] +__all__ = [] diff --git a/backend/app/schemas/labeler.py b/backend/app/schemas/labeler.py deleted file mode 100644 index 936a4aa1..00000000 --- a/backend/app/schemas/labeler.py +++ /dev/null @@ -1,28 +0,0 @@ -# -*- coding: utf-8 -*- -from datetime import datetime -from typing import Optional - -from pydantic import BaseModel - - -class Labeler(BaseModel): - id: int - discord_username: str - display_name: str - created_date: datetime - is_enabled: str - notes: Optional[str] - - -class LabelerCreate(BaseModel): - discord_username: str - display_name: Optional[str] - is_enabled: Optional[bool] = True - notes: Optional[str] = None - - -class LabelerUpdate(BaseModel): - discord_username: Optional[str] = None - display_name: Optional[str] = None - enabled: Optional[bool] = None - notes: Optional[str] = None diff --git a/backend/app/schemas/prompt.py b/backend/app/schemas/prompt.py deleted file mode 100644 index b4f818ed..00000000 --- a/backend/app/schemas/prompt.py +++ /dev/null @@ -1,22 +0,0 @@ -# -*- coding: utf-8 -*- -from datetime import datetime -from typing import Optional - -from pydantic import BaseModel - - -class Prompt(BaseModel): - id: int - labeler_id: int - prompt: str - response: Optional[str] - lang: Optional[str] - created_date: datetime - - -class PromptCreate(BaseModel): - labeler_id: Optional[int] = None - discord_username: Optional[str] = None - prompt: str - response: Optional[str] = None - lang: Optional[str] = None