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