Migrated links, lyrics and properties
This commit is contained in:
@@ -1,6 +1,7 @@
|
||||
import re
|
||||
from typing import Optional
|
||||
from collections.abc import Iterable, Iterator
|
||||
|
||||
from folkugat_web.dal.sql.temes import links as links_dal
|
||||
from folkugat_web.model import temes as model
|
||||
|
||||
IMAGE_FORMATS_RE = "|".join([
|
||||
@@ -30,3 +31,29 @@ def guess_link_type(url: str) -> model.LinkType | None:
|
||||
if regex.match(url):
|
||||
return link_type
|
||||
return None
|
||||
|
||||
|
||||
def add_links_to_tema(tema: model.Tema) -> model.Tema:
|
||||
if tema.id is not None:
|
||||
tema.links = list(links_dal.get_links(tema_id=tema.id))
|
||||
return tema
|
||||
|
||||
|
||||
def add_links_to_temes(temes: Iterable[model.Tema]) -> Iterator[model.Tema]:
|
||||
return map(add_links_to_tema, temes)
|
||||
|
||||
|
||||
def get_link_by_id(link_id: int, tema_id: int | None = None) -> model.Link | None:
|
||||
return next(iter(links_dal.get_links(link_id=link_id, tema_id=tema_id)), None)
|
||||
|
||||
|
||||
def update_link(link: model.Link):
|
||||
links_dal.update_link(link=link)
|
||||
|
||||
|
||||
def delete_link(link_id: int, tema_id: int | None = None):
|
||||
links_dal.delete_link(link_id=link_id, tema_id=tema_id)
|
||||
|
||||
|
||||
def create_link(tema_id: int) -> model.Link:
|
||||
return links_dal.create_link(tema_id=tema_id)
|
||||
|
||||
Reference in New Issue
Block a user