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