Skip to content
Merged
Show file tree
Hide file tree
Changes from 2 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,8 @@ COPY --from=ghcr.io/astral-sh/uv:latest /uv /uvx /bin/
# Change the working directory to the `app` directory
WORKDIR /app

ENV PYTHONPATH=/app

# Install dependencies
RUN --mount=type=cache,target=/root/.cache/uv \
--mount=type=bind,source=uv.lock,target=uv.lock \
Expand Down
14 changes: 7 additions & 7 deletions main.py
Original file line number Diff line number Diff line change
Expand Up @@ -24,13 +24,13 @@
# from sqlalchemy.ext.asyncio import create_async_engine, AsyncSession
# from sqlalchemy.ext.asyncio import AsyncSession
# from sqlalchemy.ext.asyncio import async_sessionmaker
from api.auth import require_auth # , is_user_authenticated
from api.auth import router as auth_router
from api.auth.main import Permission, permission_dependency
from api.projects import router as projects_router
from api.users import router as users_router
from db import engine # , get_db
from models.user import Base
from v1.auth import require_auth # , is_user_authenticated
from v1.auth import router as auth_router
from v1.auth.main import Permission, permission_dependency
from v1.projects import router as projects_router
from v1.users import router as users_router
from v1.db import engine # , get_db
from v1.models.user import Base

# from api.users import foo

Expand Down
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
4 changes: 2 additions & 2 deletions api/auth/main.py → v1/auth/main.py
Original file line number Diff line number Diff line change
Expand Up @@ -23,8 +23,8 @@
from sqlalchemy.exc import IntegrityError
from sqlalchemy import select

from db import get_db
from models.user import User
from v1.db import get_db
from v1.models.user import User

dotenv.load_dotenv()

Expand Down
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
15 changes: 8 additions & 7 deletions api/projects/main.py → v1/projects/main.py
Original file line number Diff line number Diff line change
Expand Up @@ -14,9 +14,9 @@
from sqlalchemy.orm import selectinload
import validators

from api.auth import require_auth # type: ignore
from db import get_db # , engine
from models.user import User, UserProject
from v1.auth import require_auth # type: ignore
from v1.db import get_db # , engine
from v1.models.user import User, UserProject

CDN_HOST = "hc-cdn.hel1.your-objectstorage.com"

Expand All @@ -32,7 +32,7 @@ class CreateProjectRequest(BaseModel):
class UpdateProjectRequest(BaseModel):
"""Update project request from client"""

project_id: int
# project_id: int
project_name: Optional[str] = None
hackatime_projects: Optional[List[str]] = None
repo: Optional[HttpUrl] = None
Expand Down Expand Up @@ -93,11 +93,12 @@ def validate_repo(repo: HttpUrl | None):


# @protect
@router.post("/api/projects/update")
@router.patch("/api/projects/{project_id}")
@require_auth
async def update_project(
request: Request,
project_request: UpdateProjectRequest,
project_id: int,
session: AsyncSession = Depends(get_db),
):
"""Update project details"""
Expand All @@ -106,7 +107,7 @@ async def update_project(

project_raw = await session.execute(
sqlalchemy.select(UserProject).where(
UserProject.id == project_request.project_id,
UserProject.id == project_id,
UserProject.user_email == user_email,
)
)
Expand Down Expand Up @@ -221,7 +222,7 @@ async def model_test(
return project.update_hackatime()


@router.post("/api/projects/create")
@router.post("/api/projects")
@require_auth
async def create_project(
request: Request,
Expand Down
File renamed without changes.
10 changes: 5 additions & 5 deletions api/users/main.py → v1/users/main.py
Original file line number Diff line number Diff line change
Expand Up @@ -16,9 +16,9 @@
import validators

# from sqlalchemy.orm import selectinload
from api.auth.main import generate_session_id, require_auth # type: ignore
from db import get_db
from models.user import User
from v1.auth.main import generate_session_id, require_auth # type: ignore
from v1.db import get_db
from v1.models.user import User

router = APIRouter()

Expand Down Expand Up @@ -46,7 +46,7 @@ class DeleteUserRequest(BaseModel):
# there'll be a second endpoint for admins to update
# TODO: Send an email that tells them to verify that their email was right
# @protect
@router.post("/api/users/update")
@router.patch("/api/users/me")
@require_auth
async def update_user(
request: Request,
Expand Down Expand Up @@ -115,7 +115,7 @@ async def get_user(


# @protect
@router.post("/api/users/delete")
@router.delete("/api/users/me")
@require_auth
async def delete_user(
request: Request,
Expand Down