Пример #1
0
def get_user(username, password, *args, **kwargs):
    # This is optional, if you don't need password credential
    # there is no need to implement this method
    user = User.query.filter(
        db.or_(User.name == username, User.email == username)).first()
    if user and user.check_password(password):
        return user
    return None
Пример #2
0
def show(slug):
    post_data = Post.query.filter(db.or_(Post.id == slug,
                                         Post.slug == slug)).first_or_404()
    next_post = get_next_post(post_data.id)
    prev_post = get_prev_post(post_data.id)
    return render_template('post.html',
                           post=post_data,
                           next_post=next_post,
                           prev_post=prev_post)
Пример #3
0
def update(tag_id):
    payload = request.get_json()
    tag_data = Tag.query.filter(db.or_(Tag.id == tag_id,
                                       Tag.slug == tag_id)).first_or_404()
    tag_data, errors = TagSchema().load(payload)
    if errors:
        return jsonify(code=20001, error=errors), 422
    tag_data.save()
    return TagSchema().jsonify(tag_data)
Пример #4
0
def index():
    page = int(request.args.get('page', 1))
    limit = int(request.args.get('limit', 20))
    role_id = request.args.get('role')
    users_query = User.query
    if role_id:
        users_query = users_query.filter(
            db.or_(User.primary_role_id == role_id,
                   User.secondary_roles.any(id=role_id)))
    users = users_query.order_by(User.created_at.desc()).paginate(page, limit)

    return AccountSchema().jsonify(users)
Пример #5
0
def update(post_id):
    post_data = Post.query.filter(
        db.or_(Post.id == post_id, Post.slug == post_id)).first_or_404()
    playload = request.get_json()
    post_data, errors = PostSchema().load(playload)
    if errors:
        return jsonify(code=20001, error=errors), 422
    post_data.updated_by = g.user.id
    if post_data.status != 'published' and playload.get(
            'status') == 'published':
        post_data.published_at = datetime.utcnow()
        post_data.published_by = g.user.id
    post_data.save()
    return PostSchema().jsonify(post_data)
Пример #6
0
def update(post_id):
    post_data = Post.query.filter(
        db.or_(Post.id == post_id, Post.slug == post_id)).first_or_404()
    playload = request.get_json()
    post_data, errors = PostSchema().load(playload)
    if errors:
        return jsonify(code=20001, error=errors), 422
    post_data.updated_by = g.user.id
    if post_data.status != 'published' and playload.get(
            'status') == 'published':
        post_data.published_at = datetime.utcnow()
        post_data.published_by = g.user.id
    post_data.save()
    if playload.get('telegram'):
        message = "{}\n{}".format(
            post_data.title,
            url_for('post_view.show', slug=post_data.slug, _external=True))
        send_telegram_channel(message)
    return PostSchema().jsonify(post_data)
Пример #7
0
def get_tag(id_or_slug):
    return Tag.query.filter(
        db.or_(Tag.id == id_or_slug, Tag.slug == id_or_slug)).first()
Пример #8
0
def get_role(id_or_slug):
    return Role.query.filter(
        db.or_(Role.id == id_or_slug, Role.slug == id_or_slug)).first()
Пример #9
0
def destory(post_id):
    post_data = Post.query.filter(
        db.or_(Post.id == post_id, Post.slug == post_id)).first_or_404()
    post_data.delete()
    return jsonify(code=10000, message='success')
Пример #10
0
def show(post_id):
    post_data = Post.query.filter(
        db.or_(Post.id == post_id, Post.slug == post_id)).first_or_404()
    return PostSchema().jsonify(post_data)
Пример #11
0
def hit(slug):
    post_data = Post.query.filter(db.or_(Post.id == slug,
                                         Post.slug == slug)).first_or_404()
    post_data.views += 1
    post_data.save()
    return jsonify(code=10000, message='success')
Пример #12
0
def get_setting(key):
    return Setting.query.filter(db.or_(Setting.key == key,
                                       Setting.id == key)).first()
Пример #13
0
def destory(tag_id):
    tag_data = Tag.query.filter(db.or_(Tag.id == tag_id,
                                       Tag.slug == tag_id)).first_or_404()
    tag_data.delete()

    return jsonify(code=10000, message='success')
Пример #14
0
def show(tag_id):
    tag_data = Tag.query.filter(db.or_(Tag.id == tag_id,
                                       Tag.slug == tag_id)).first_or_404()
    return TagSchema().jsonify(tag_data)
Пример #15
0
def show(slug, page=1):
    tag_data = Tag.query.filter(db.or_(Tag.id == slug,
                                       Tag.slug == slug)).first_or_404()
    posts = get_posts_by_tag(tag_data.id, page)
    return render_template('tag.html', tag=tag_data, posts=posts)