Python FastAPI

Pasted Oct 29, 2026, 2:12 PM5 files202 linesexpires in 16 h

Scan to open on your phone

Point a camera at the QR code - it opens this exact paste, no app needed.

https://codepastes.com/siepex-python-fastapi-2
repository.py
from sqlalchemy import select
from sqlalchemy.orm import Session

from src.models.model import Todo
from src.schemas.schema import TodoInput, TodoUpdate


class TodoRepository:
    def __init__(self, session: Session):
        self.session = session

    def get_all(self) -> list[Todo]:
        consulta = select(Todo).order_by(Todo.id)
        return list(self.session.scalars(consulta).all())

    def get_by_id(self, id_todo: int) -> Todo | None:
        return self.session.get(Todo, id_todo)

    def create(self, data: TodoInput) -> Todo:
        todo = Todo(**data.model_dump())

        self.session.add(todo)
        self.session.commit()
        self.session.refresh(todo)

        return todo

    def update(
        self,
        todo: Todo,
        data: TodoUpdate,
    ) -> Todo:
        todo.title = data.title
        todo.status = data.status

        self.session.commit()
        self.session.refresh(todo)

        return todo

    def delete(self, todo: Todo) -> None:
        self.session.delete(todo)
        self.session.commit()

4,725 chars · codepastes.com