def get_list(_fields: list = None, _paginated: bool = False, **kwargs): page = 1 if "page" not in kwargs else int(kwargs["page"]) limit = 20 if "limit" not in kwargs else int(kwargs["limit"]) query = DBSession().query(ArticleModel) if "created_at_ge" in kwargs: query = query.filter( ArticleModel.created_at >= kwargs["created_at_ge"]) if "created_at_le" in kwargs: query = query.filter( ArticleModel.created_at <= kwargs["created_at_le"]) if _fields is not None: query = query.with_entities( *[getattr(ArticleModel, _field) for _field in _fields]) if limit != 0: datas = (query.order_by(desc( ArticleModel.created_at)).limit(limit).offset( (page - 1) * limit)) else: datas = query.order_by(desc(ArticleModel.created_at)) if _paginated: total = query.count() return datas, schemas.PageInfoSchema.paginate(total, page, limit) else: return datas
def get_one(**args) -> OrdinaryWriterModel: query = DBSession().query(OrdinaryWriterModel) if "id" in args: query = query.filter(OrdinaryWriterModel.id == args["id"]) if "author_id" in args: query = query.filter( OrdinaryWriterModel.author_id == args["author_id"]) return query.first()
def get_one(**args) -> CommentModel: query = DBSession().query(CommentModel) if "id" in args: query = query.filter(CommentModel.id == args["id"]) return query.first()
def get_one(**args) -> ArticleModel: query = DBSession().query(ArticleModel) if "id" in args: query = query.filter(ArticleModel.id == args["id"]) if "title" in args: pass return query.first()
def get_one(**args) -> AuthorModel: query = DBSession().query(AuthorModel) if "id" in args: query = query.filter(AuthorModel.id == args["id"]) if "name" in args: pass return query.first()