Beispiel #1
0
    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
Beispiel #2
0
    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()
Beispiel #3
0
    def get_one(**args) -> CommentModel:
        query = DBSession().query(CommentModel)

        if "id" in args:
            query = query.filter(CommentModel.id == args["id"])

        return query.first()
Beispiel #4
0
    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()
Beispiel #5
0
    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()