"""Distribution Format Media model.""" from oto import response from sqlalchemy import Column from sqlalchemy import String from sqlalchemy import Integer from sqlalchemy.exc import SQLAlchemyError from product_configuration.connectors import mysql from product_configuration.connectors.mysql import db_session from product_configuration.connectors.sentry import sentry_client class DistributionFormatMedia(mysql.BaseModel): """Distribution Format Media model. Represents the `distribution_format_media` table in `art_relations`. """ __tablename__ = 'distribution_format_media' distribution_format_media_id = Column( Integer, primary_key=True, autoincrement=True, nullable=False) name = Column(String) def to_dict(self): """Return a dictionary of a distribution_format_media type.""" return { 'distribution_format_media_id': self.distribution_format_media_id, 'name': self.name } @mysql.wrap_db_errors def get_all_media_types(): """Get all distribution. Returns: response.Response: containing list of distribution_format_media types. """ with db_session() as session: try: result = session.query(DistributionFormatMedia).all() media_types = [media_type.to_dict() for media_type in result] return response.Response(status=200, message=media_types) except SQLAlchemyError as e: sentry_client.capture_exception(e) return response.create_fatal_response('A database error occurred.')