Skip to content
Closed
Show file tree
Hide file tree
Changes from all 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: 1 addition & 1 deletion .env
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@ SMTP_SSL=False
SMTP_PORT=587

# Postgres
POSTGRES_SERVER=localhost
POSTGRES_SERVER=db
POSTGRES_PORT=5432
POSTGRES_DB=app
POSTGRES_USER=postgres
Expand Down
1 change: 1 addition & 0 deletions backend/.python-version
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
3.11.9

This file was deleted.

This file was deleted.

This file was deleted.

54 changes: 0 additions & 54 deletions backend/app/alembic/versions/e2412789c190_initialize_models.py

This file was deleted.

4 changes: 2 additions & 2 deletions backend/app/api/main.py
Original file line number Diff line number Diff line change
@@ -1,13 +1,13 @@
from fastapi import APIRouter

from app.api.routes import items, login, private, users, utils
from app.api.routes import documents, login, private, users, utils
from app.core.config import settings

api_router = APIRouter()
api_router.include_router(login.router)
api_router.include_router(users.router)
api_router.include_router(utils.router)
api_router.include_router(items.router)
api_router.include_router(documents.router)


if settings.ENVIRONMENT == "local":
Expand Down
45 changes: 45 additions & 0 deletions backend/app/api/routes/documents.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
from typing import Any
from app.api.deps import CurrentUser, SessionDep
from app.models import Document, DocumentCreate, DocumentPublic
from fastapi import APIRouter, BackgroundTasks, File, UploadFile, HTTPException
from app.s3 import upload_file_to_s3, generate_s3_url

router = APIRouter(prefix="/documents", tags=["documents"])

@router.post("/", response_model=DocumentPublic)
def create_document(
*, session: SessionDep, current_user: CurrentUser,
background_tasks: BackgroundTasks,
file: UploadFile = File(...),
):
key = None
try:
user_id = current_user.id
key = upload_file_to_s3(file, current_user.id)
except Exception as e:
raise HTTPException(500, f"Failed to upload file: {key}. Error: {str(e)}")

try:
url = generate_s3_url(key)
except Exception as e:
raise HTTPException(500, f"Could not generate URL for file key: {key}")

document_in = DocumentCreate(
filename=file.filename,
content_type=file.content_type,
size=file.size,
s3_url=url,
)

document = Document.model_validate(document_in, update={"owner_id": current_user.id})


session.add(document)
session.commit()
session.refresh(document)

# 3. Kick off background job
print("Document created, starting background task...")
# background_tasks.add_task(generate_questions, document.id)

return document
Loading
Loading