Files
tam3/api/repos/prefixes.py

40 lines
1.1 KiB
Python
Raw Normal View History

2025-09-21 00:09:19 -04:00
from .template import Repo
from dataclasses import dataclass
from exceptions import not_found
@dataclass
class Prefix:
name: str
color: str = ""
weight: int = 0
class PrefixRepo(Repo):
def get_all(self) -> list[Prefix]:
self.cur.execute("SELECT * FROM prefixes ORDER BY weight, name")
results = self.cur.fetchall()
if not results:
return []
return [Prefix(*r) for r in results]
def get_one(self, prefix_name: str):
self.cur.execute("SELECT * FROM prefixes WHERE name = %s", (prefix_name,))
result = self.cur.fetchone()
if not result:
raise not_found
return Prefix(*result)
def add_one(self, prefix: Prefix) -> str:
self.cur.execute(
"REPLACE INTO prefixes VALUES (%s, %s, %s)",
(prefix.name, prefix.color, prefix.weight),
)
self.conn.commit()
return "Prefix inserted successfully."
def del_one(self, prefix_name: str) -> str:
self.cur.execute("DELETE FROM prefixes WHERE name = %s", (prefix_name,))
self.conn.commit()
return "Prefix deleted successfully."