"""ItunesLanguages Model.""" from oto import response from sqlalchemy import Column from sqlalchemy import Integer from sqlalchemy import String from product.connectors import mysql class ItunesLanguages(mysql.BaseModel): """Itunes Languages Model. Represents itunes_languages table in art_relations. """ __tablename__ = 'itunes_languages' language_id = Column( Integer, primary_key=True, autoincrement=True, nullable=False) language = Column(String) language_code = Column(String) def to_dict(self): """Return a dictionary of a ItunesLanguage's properties.""" return { 'language_id': self.language_id, 'language': self.language, 'language_code': self.language_code } def get_language_by_id(language_id): """Get language information by language_id. Args: language_id (int): unique identifier for the ItunesLanguage. Returns: response.Response: containing dict of ItunesLanguage obj or error. """ with mysql.db_session() as session: language = session.query(ItunesLanguages).filter( ItunesLanguages.language_id == language_id).one_or_none() if not language: return response.create_not_found_response( message='No Itunes Language found for this language_id.') return response.Response(message=language.to_dict()) def get_all_itunes_languages(): """Get all language available for localizations. Returns: response.Response: containing dict of ItunesLanguage obj or error. """ with mysql.db_session() as session: language = session.query(ItunesLanguages)\ .order_by(ItunesLanguages.language).all() return_list = [lang.to_dict() for lang in language] return_obj = { 'items': return_list, 'pagination': { 'type': 'none', 'total_records': len(return_list)}} return response.Response(message=return_obj)