from dataclasses import dataclass from typing import Any, Dict, List from server.artist.utils import ImageService from server.db.constants import ARTIST_SEARCH_INDEX from server.dna.constants import ARTIST from server.core.helpers.search_by_name import SeachByNameHelper, SeachByNameBaseObject __all__ = ["ArtistSearchByNameHelper"] @dataclass class ArtistSeachByNameDataObject: artwork_url: str artwork_url_alt: str name: str score: float @dataclass class ArtistSeachByNameObject(SeachByNameBaseObject): data: ArtistSeachByNameDataObject class _ArtistSearchByNameHelper(SeachByNameHelper): _index_name: str = ARTIST_SEARCH_INDEX def get_data(self, results: List[Dict[str, Any]]): res = [] for result in results: res.append( ArtistSeachByNameObject( entity_type=ARTIST, entity_id=result["id"], data=dict( # type: ignore artwork_url=ImageService.get_img_url(result["spotify_artist_id"]), artwork_url_alt=result["artwork_url"], name=result["name"], score=result["score"], ), ) ) return res ArtistSearchByNameHelper = _ArtistSearchByNameHelper()