from sqlalchemy.orm import Query from server.artist.models import ArtistSpotifyAlbums, ArtistSpotifyTracks from server.dna.utils import DataQueryWrapper class SpotifyRepo: tracks_model = ArtistSpotifyTracks albums_model = ArtistSpotifyAlbums # TODO: develop one more universal method (get_data) that # will return track's data, albums data, external_links data @classmethod async def get_tracks(cls, _id: str, limit: int = 8) -> list: query = Query(cls.tracks_model.value).where(cls.tracks_model.id == _id) results: list = list(await DataQueryWrapper.select(query)) return results[:limit] # TODO: develop one more universal method (get_data) that # will return track's data, albums data, external_links data @classmethod async def get_albums(cls, _id: str) -> list: query = Query(cls.albums_model.value).where(cls.albums_model.id == _id) results: list = list(await DataQueryWrapper.select(query)) return results