Skip to content

Commit

Permalink
solution
Browse files Browse the repository at this point in the history
  • Loading branch information
vlodek69 committed Jul 13, 2023
1 parent b0d225a commit 41abcd6
Show file tree
Hide file tree
Showing 2 changed files with 53 additions and 0 deletions.
45 changes: 45 additions & 0 deletions app/managers.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
import sqlite3

from typing import List

from models import Actor


class ActorManager:
def __init__(self) -> None:
self._connection = sqlite3.connect("cinema")
self.table_name = "Actors"

def create(self, first_name: str, last_name: str) -> None:
self._connection.execute(
f"INSERT INTO {self.table_name} (first_name, last_name)"
"VALUES (?, ?)",
(first_name, last_name)
)
self._connection.commit()

def all(self) -> List[Actor]:
actors_cursor = self._connection.execute(
f"SELECT id, first_name, last_name FROM {self.table_name}"
)
return [Actor(*row) for row in actors_cursor]

def update(self,
id_to_update: int,
new_first_name: str,
new_last_name: str) -> None:
self._connection.execute(
f"UPDATE {self.table_name} "
"SET (first_name, last_name) = (?, ?)"
"WHERE id = ?",
(new_first_name, new_last_name, id_to_update)
)
self._connection.commit()

def delete(self, id_to_delete: int) -> None:
self._connection.execute(
f"DELETE FROM {self.table_name} "
"WHERE id = ?",
(id_to_delete,)
)
self._connection.commit()
8 changes: 8 additions & 0 deletions app/models.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
from dataclasses import dataclass


@dataclass
class Actor:
id: int
first_name: str
last_name: str

0 comments on commit 41abcd6

Please sign in to comment.