All checks were successful
Mobile Android Release / android-release (push) Successful in 1m32s
50 lines
1.4 KiB
Python
50 lines
1.4 KiB
Python
from datetime import datetime
|
|
|
|
from fastapi import APIRouter, Depends
|
|
from pydantic import BaseModel, Field
|
|
from sqlalchemy.orm import Session
|
|
|
|
from app.database import get_db
|
|
from app.models.user import User
|
|
from app.models.user_note import UserNote
|
|
from app.utils.auth import get_current_user
|
|
|
|
router = APIRouter()
|
|
|
|
|
|
class MyNoteResponse(BaseModel):
|
|
content: str
|
|
updated_at: datetime | None = None
|
|
|
|
|
|
class MyNoteUpdate(BaseModel):
|
|
content: str = Field(default="", max_length=50000)
|
|
|
|
|
|
@router.get("", response_model=MyNoteResponse)
|
|
def get_my_note(
|
|
db: Session = Depends(get_db),
|
|
current_user: User = Depends(get_current_user),
|
|
):
|
|
note = db.query(UserNote).filter(UserNote.user_id == current_user.id).first()
|
|
if not note:
|
|
return {"content": "", "updated_at": None}
|
|
return {"content": note.content or "", "updated_at": note.updated_at}
|
|
|
|
|
|
@router.put("", response_model=MyNoteResponse)
|
|
def save_my_note(
|
|
data: MyNoteUpdate,
|
|
db: Session = Depends(get_db),
|
|
current_user: User = Depends(get_current_user),
|
|
):
|
|
note = db.query(UserNote).filter(UserNote.user_id == current_user.id).first()
|
|
if not note:
|
|
note = UserNote(user_id=current_user.id, content=data.content)
|
|
db.add(note)
|
|
else:
|
|
note.content = data.content
|
|
note.updated_at = datetime.utcnow()
|
|
db.commit()
|
|
db.refresh(note)
|
|
return {"content": note.content or "", "updated_at": note.updated_at}
|