from delphi_api.v3.data_models.postgres_db import Label, db from delphi_api.v3.data_models.schemas.models import LabelSchema from delphi_api.v3.view_models.params import Params from delphi_api.v3.view_models.query_builder import QueryBuilder class LabelsViewModel: @staticmethod def get_one(params: dict): params = Params(**params) result = db.session.query(Label).get_or_404(params.label_id) return LabelSchema().dump(result) @staticmethod def get_many(params: dict): params = Params(**params) q = db.session.query(Label) q = QueryBuilder.or_filters_from_params(q, params, parent=Label) q = QueryBuilder.add_sort_clause(q, params, parent=Label) q = QueryBuilder.add_query_limit_offset(q, params) return LabelSchema(many=True).dump(q.all())