feat: board creation endpoint

This commit is contained in:
2025-08-07 09:18:23 +04:00
parent 812e30a2f8
commit 734099165b
4 changed files with 59 additions and 8 deletions

View File

@ -1,10 +1,11 @@
from datetime import datetime
from typing import Optional
from sqlalchemy import select
from models import Board
from repositories.base import BaseRepository
from schemas.board import UpdateBoardSchema
from schemas.board import UpdateBoardSchema, CreateBoardSchema
class BoardRepository(BaseRepository):
@ -20,6 +21,15 @@ class BoardRepository(BaseRepository):
result = await self.session.execute(stmt)
return result.scalar_one_or_none()
async def create(self, data: CreateBoardSchema) -> Board:
board_data = data.model_dump()
board_data["created_at"] = datetime.now()
board = Board(**board_data)
self.session.add(board)
await self.session.commit()
await self.session.refresh(board)
return board
async def update(self, board: Board, data: UpdateBoardSchema) -> Board:
board.lexorank = data.lexorank if data.lexorank else board.lexorank
board.name = data.name if data.name else board.name