Ejemplo n.º 1
0
def notice_delete():
    """
    删除通知接口
    :return:
    """
    user_id = session['user_id']
    role = session['type']

    data = request.json
    notice_id = data.get('notice_id')

    if notice_id is None or type(notice_id) != list:
        current_app.logger.error('params error %s', str({
            'notice_id': notice_id
        }))
        return fail_warp(errors['101']), 400

    try:
        GetNotice(role).delete_notice(user_id, notice_id)
        current_app.logger.info('delete notice success %s', str({
            'notice_id': notice_id,
            'user_id': user_id
        }))
        return success_warp('delete notice success')
    except SQLAlchemyError as e:
        current_app.logger.error(e)
        return fail_warp(e.args[0]), 500
    except RuntimeError as e:
        current_app.logger.error(e)
        return fail_warp(e.args[0]), 500
Ejemplo n.º 2
0
def put_move_img():
    user_id = session['user_id']
    data = request.json
    img_id = data.get('img_id')
    file_id = data.get('file_id')

    if type(img_id) != int or type(file_id) != int:
        current_app.logger.error('img move %s',
                                 str({
                                     'img_id': img_id,
                                     'file_id': file_id
                                 }))
        return fail_warp(errors['101']), 400

    try:
        put_dir_img_move(img_id, file_id, user_id)
        current_app.logger.info(
            'img delete %s',
            str({
                'id': img_id,
                'file_id': file_id,
                'user': user_id
            }))
        return success_warp('移动成功')
    except SQLAlchemyError as e:
        current_app.logger.error(e)
        return fail_warp(e.args[0]), 500
    except RuntimeError as e:
        current_app.logger.error(e)
        return fail_warp(e.args[0]), 500
Ejemplo n.º 3
0
def upload_post():
    """
    上传头像
    :return:
    """
    f = request.files.get('avatar')
    # 校验存在性
    if f is None:
        current_app.logger.error('params error')
        return fail_warp(errors['101']), 400
    if not allowed_file(f.filename):
        current_app.logger.error('file error')
        return fail_warp(errors['102']), 400

    name = deal_img('avatar', f)

    try:
        avatar = save_avatar(name)
        current_app.logger.info('delete user success %s',
                                str({
                                    'avatar_id': avatar.id,
                                }))
        return success_warp({'avatar_id': avatar.id})
    except SQLAlchemyError as e:
        current_app.logger.error(e)
        return fail_warp(errors['501']), 500
Ejemplo n.º 4
0
def recommend_get():
    """
    获得推荐消息
    :return:
    """
    user_id = session['user_id']
    role = session['type']
    data = request.args
    limit = int(data.get('limit')) if data.get('limit') is not None else 20
    page = int(data.get('page')) if data.get('page') is not None else 0
    start_time = data.get('start_time')
    end_time = data.get('end_time')
    nickname = data.get('nick_time')
    content = data.get('content')

    try:
        count, res = GetRecommend(role).get_recommend(limit, page, start_time, end_time, nickname, content, user_id)
        current_app.logger.info({
            'count': count,
            'res': res
        })
        return success_warp({
            'count': count,
            'res': res
        })
    except SQLAlchemyError as e:
        current_app.logger.error(e)
        return fail_warp(e.args[0]), 500
    except RuntimeError as e:
        current_app.logger.error(e)
        return fail_warp(e.args[0]), 500
Ejemplo n.º 5
0
def user_delete():
    """
    删除用户
    :return:
    """
    user_id = session['user_id']
    data = request.json.get('user_id')
    if type(data) != list:
        current_app.logger.error('params error %s', str({'body': data}))
        return fail_warp(errors['101']), 400

    try:
        delete_user(data, user_id)
        current_app.logger.info('delete user success %s',
                                str({
                                    'parent': user_id,
                                    'username': data
                                }))
        return success_warp('delete success')
    except SQLAlchemyError as e:
        current_app.logger.error(e)
        return fail_warp(errors['501']), 500
    except RuntimeError as e:
        current_app.logger.error(e)
        return fail_warp(e.args[0]), 500
Ejemplo n.º 6
0
def post_gallery():
    """
    添加分类
    """
    user_id = session['user_id']
    data = request.json
    name = data.get('name')

    if name is None or name == '':
        current_app.logger.error('gallery info %s', str({
            'name': name,
        }))
        return fail_warp(errors['101']), 400

    try:
        id = post_dir(name, user_id)
        current_app.logger.info('gallery post %s', str({
            'name': name,
            'id': id
        }))
        return success_warp({'id': id})
    except SQLAlchemyError as e:
        current_app.logger.error(e)
        return fail_warp(e.args[0]), 500
    except RuntimeError as e:
        current_app.logger.error(e)
        return fail_warp(e.args[0]), 500
Ejemplo n.º 7
0
def notice_get():
    """
    获取通知
    :return:
    """
    user_id = session['user_id']
    role = session['type']
    limit = int(request.args.get('limit')) if request.args.get('limit') is not None else 20
    page = int(request.args.get('page')) if request.args.get('page') is not None else 0
    start_time = request.args.get('start_time')
    end_time = request.args.get('end_time')
    notice_type = request.args.get('type')
    title = request.args.get('title')

    try:
        count, res = GetNotice(role). \
            get_all_res(user_id, limit, page, start_time, end_time, notice_type, title)
        current_app.logger.info({
            'count': count,
            'notice': res
        })
        return success_warp({
            'count': count,
            'notice': res
        })
    except SQLAlchemyError as e:
        current_app.logger.error(e)
        return fail_warp(e.args[0]), 500
    except RuntimeError as e:
        current_app.logger.error(e)
        return fail_warp(e.args[0]), 500
Ejemplo n.º 8
0
def record_get():
    data = request.args
    start = data.get('start')
    end = data.get('end')

    if start is None or re.match('^[0-9]{4}-[0-9]{2}-[0-9]{2}', start) is None or \
            end is None or re.match('^[0-9]{4}-[0-9]{2}-[0-9]{2}', end) is None:
        current_app.logger.error('record error %s',
                                 str({
                                     'start': start,
                                     'end': end
                                 }))
        return fail_warp(errors['101'])

    start = datetime.datetime.strptime(start, '%Y-%m-%d')
    end = datetime.datetime.strptime(end, '%Y-%m-%d')

    try:
        temp = RecordBuild(start, end).get_res()
        current_app.logger.info('record info %s', str({'data': temp}))
        return success_warp(temp)
    except SQLAlchemyError as e:
        current_app.logger.error(e)
        return fail_warp(e.args[0]), 500
    except RuntimeError as e:
        current_app.logger.error(e)
        return fail_warp(e.args[0]), 500
Ejemplo n.º 9
0
def recommend_post():
    """
    发送推荐消息
    :return:
    """
    user_id = session['user_id']
    role = session['type']
    data = request.json
    content = data.get('content')
    img = data.get('img')

    if img is None or type(img) != list:
        current_app.logger.error('recommend info %s', str({
            'content': content,
            'img': img
        }))
        return fail_warp(errors['101']), 400

    try:
        recommend_id = GetRecommend(role).post_recommend(content, img, user_id)
        executor.submit(label_recommend, recommend_id, current_app._get_current_object())
        current_app.logger.info('recommend info %s', str({
            'content': content,
            'img': img,
            'user_id': user_id
        }))
        return success_warp('add recommend success')
    except SQLAlchemyError as e:
        current_app.logger.error(e)
        return fail_warp(e.args[0]), 500
    except RuntimeError as e:
        current_app.logger.error(e)
        return fail_warp(e.args[0]), 500
Ejemplo n.º 10
0
def put_gallery(dir_id: int):
    """
    修改分类名称
    """
    user_id = session['user_id']

    data = request.json
    new_name = data.get('name')
    if new_name is None or new_name == '':
        current_app.logger.error('gallery info %s', str({
            'name': new_name,
        }))
        return fail_warp(errors['101']), 400

    try:
        put_dir(dir_id, new_name, user_id)
        current_app.logger.info('gallery put %s',
                                str({
                                    'id': dir_id,
                                    'new_name': new_name
                                }))
        return success_warp('修改成功')
    except SQLAlchemyError as e:
        current_app.logger.error(e)
        return fail_warp(e.args[0]), 500
    except RuntimeError as e:
        current_app.logger.error(e)
        return fail_warp(e.args[0]), 500
Ejemplo n.º 11
0
def delete_comment():
    user_id = session['user_id']
    role = session['type']
    data = request.json
    level = data.get('level')
    comment_id = data.get('comment_id')

    if (level != 1 and level != 2) or type(comment_id) != int:
        current_app.logger.error(
            'params error %s',
            str({
                'comment_id': comment_id,
                'level': level,
                'user_id': user_id
            }))
        return fail_warp(errors['101']), 400

    try:
        CommentFactory(role, level).delete_item(comment_id, user_id)
        current_app.logger.info({
            'comment_id': comment_id,
            'level': level,
            'user_id': user_id
        })
        return success_warp('删除成功')
    except SQLAlchemyError as e:
        current_app.logger.error(e)
        return fail_warp(e.args[0]), 500
    except RuntimeError as e:
        current_app.logger.error(e)
        return fail_warp(e.args[0]), 500
Ejemplo n.º 12
0
def recommend_put(recommend_id):
    user_id = session['user_id']
    role = session['type']
    data = request.json
    content = data.get('content')
    new_img_id = data.get('new_img_id')
    old_img_id = data.get('old_img_id')

    if new_img_id is None or type(new_img_id) != list or \
            old_img_id is None or type(old_img_id) != list:
        current_app.logger.error('put recommend info %s', str({
            'content': content,
            'new_img': new_img_id,
            'old_img': old_img_id
        }))
        return fail_warp(errors['101']), 400

    try:
        recommend_id = GetRecommend(role).put_recommend(content, new_img_id, old_img_id, user_id, recommend_id)
        executor.submit(label_recommend, recommend_id, current_app._get_current_object())
        current_app.logger.info('put recommend %s', str({
            'content': content,
            'new_img': new_img_id,
            'old_img': old_img_id,
            'recommend': recommend_id
        }))
        return success_warp('put recommend success')
    except SQLAlchemyError as e:
        current_app.logger.error(e)
        return fail_warp(e.args[0]), 500
    except RuntimeError as e:
        current_app.logger.error(e)
        return fail_warp(e.args[0]), 500
Ejemplo n.º 13
0
def upload_img():
    """
    上传推荐消息图片
    :return:
    """
    user_id = session['user_id']
    f = request.files.get('img')
    # 校验存在性
    if f is None:
        current_app.logger.error('params error')
        return fail_warp(errors['101']), 400
    if not allowed_file(f.filename):
        current_app.logger.error('file error')
        return fail_warp(errors['102']), 400

    name = deal_img('img', f)

    try:
        img = save_img(name, user_id)
        current_app.logger.info('delete user success %s', str({
            'avatar_id': img.id,
        }))
        return success_warp({
            'img_id': img.id
        })
    except SQLAlchemyError as e:
        current_app.logger.error(e)
        return fail_warp(errors['501']), 500
Ejemplo n.º 14
0
def user_put(this_user):
    """
    修改用户信息
    :param this_user:
    :return:
    """
    user_id = session['user_id']
    nickname = request.json.get('nickname')
    sex = request.json.get('sex')
    email = request.json.get('email')
    phone = request.json.get('phone')
    avatar = request.json.get('avatar')

    # 一级参数检验
    if nickname is None or nickname == '' or \
            sex is None or sex == '' or \
            email is None or phone is None or \
            type(avatar) != dict or this_user is None:
        current_app.logger.error(
            'params error %s',
            str({
                'nickname': nickname,
                'sex': sex,
                'email': email,
                'phone': phone,
                'avatar': avatar
            }))
        return fail_warp(errors['101']), 400

    old_avatar, new_avatar = avatar.get('old_id'), avatar.get('new_id')

    if old_avatar is None or new_avatar is None:
        current_app.logger.error('params error %s', str({'avatar': avatar}))
        return fail_warp(errors['101']), 400

    try:
        change_user_info(user_id, this_user, nickname, sex, email, phone,
                         avatar)
        current_app.logger.info(
            'change user info success %s',
            str({
                'nickname': nickname,
                'sex': sex,
                'email': email,
                'phone': phone,
                'avatar': avatar
            }))
        return success_warp('update success')
    except SQLAlchemyError as e:
        current_app.logger.error(e)
        return fail_warp(e.args[0]), 500
    except RuntimeError as e:
        current_app.logger.error(e)
        return fail_warp(e.args[0]), 500
Ejemplo n.º 15
0
def delete_gallery(dir_id: int):
    """
    删除分类
    """
    user_id = session['user_id']

    try:
        delete_dir(dir_id, user_id)
        current_app.logger.info('gallery delete %s', str({'id': dir_id}))
        return success_warp('删除成功')
    except SQLAlchemyError as e:
        current_app.logger.error(e)
        return fail_warp(e.args[0]), 500
    except RuntimeError as e:
        current_app.logger.error(e)
        return fail_warp(e.args[0]), 500
Ejemplo n.º 16
0
def style_get():
    try:
        data = get_tags()
        current_app.logger.info('return style success')
        return success_warp(data)
    except SQLAlchemyError as e:
        current_app.logger.error(e)
        return fail_warp(e.args[0]), 500
Ejemplo n.º 17
0
def user_get_detail(this_user):
    """
    得到某一用户的信息
    :param this_user:
    :return:
    """
    user_id = session['user_id']
    role = session['type']
    try:
        user = get_user_detail(user_id, this_user, role)
        current_app.logger.info('user detail %s', str(user))
        return success_warp(user)
    except SQLAlchemyError as e:
        current_app.logger.error(e)
        return fail_warp(errors['501']), 500
    except RuntimeError as e:
        current_app.logger.error(e)
        return fail_warp(e.args[0]), 500
Ejemplo n.º 18
0
def password_put(this_user):
    """
    修改密码
    :param this_user:
    :return:
    """
    user_id = session['user_id']
    data = request.json
    new_password = data.get('new_password')
    old_password = data.get('old_password')

    if user_id == this_user:
        if new_password is None or new_password == '' or \
                old_password is None or old_password == '':
            current_app.logger.error(
                'params error %s',
                str({
                    'new_password': new_password,
                    'old_password': old_password
                }))
            return fail_warp(errors['101']), 400
    else:
        if new_password is None or new_password == '':
            current_app.logger.error(
                'params error %s',
                str({
                    'new_password': new_password,
                    'old_password': old_password
                }))
            return fail_warp(errors['101']), 400

    try:
        change_password(user_id, this_user, encode_md5(new_password),
                        encode_md5(old_password))
        current_app.logger.info('change password success %s',
                                str({'this_user': this_user}))
        return success_warp('update success')
    except SQLAlchemyError as e:
        current_app.logger.error(e)
        return fail_warp(e.args[0]), 500
    except RuntimeError as e:
        current_app.logger.error(e)
        return fail_warp(e.args[0]), 500
Ejemplo n.º 19
0
def notice_get_detail(notice_id: int):
    """
    获取通知详情
    :param notice_id:
    :return:
    """
    user_id = session['user_id']
    role = session['type']
    try:
        res = GetNotice(role).get_detail_res(user_id, notice_id)
        current_app.logger.info({
            'notice': res
        })
        return success_warp(res)
    except SQLAlchemyError as e:
        current_app.logger.error(e)
        return fail_warp(e.args[0]), 500
    except RuntimeError as e:
        current_app.logger.error(e)
        return fail_warp(e.args[0]), 500
Ejemplo n.º 20
0
def notice_post():
    """
    添加通知
    :return:
    """
    user_id = session['user_id']
    role = session['type']
    data = request.json

    title = data.get('title')
    content = data.get('content')
    notice_type = data.get('type')
    is_top = data.get('is_top')

    if title is None or title == '' or \
            notice_type is None or is_top is None:
        current_app.logger.error('params error %s', str({
            'title': title,
            'content': content,
            'type': notice_type,
            'is_top': is_top,
            'user_id': user_id
        }))
        return fail_warp(errors['101']), 400

    try:
        GetNotice(role).post_notice(title, content, is_top, notice_type, user_id)
        current_app.logger.info({
            'title': title,
            'content': content,
            'type': notice_type,
            'is_top': is_top,
            'user_id': user_id
        })
        return success_warp('add notice success')
    except SQLAlchemyError as e:
        current_app.logger.error(e)
        return fail_warp(e.args[0]), 500
    except RuntimeError as e:
        current_app.logger.error(e)
        return fail_warp(e.args[0]), 500
Ejemplo n.º 21
0
def login_post():
    """
    用户登陆
    :return:
    """
    data = request.json
    username = data.get('username')
    password = data.get('password')

    if username is None or username == '' or \
            password is None or password == '':
        current_app.logger.error(
            'params error %s', str({
                'username': username,
                'password': password
            }))
        return fail_warp(errors['101']), 400

    try:
        res = confirm_user(username, encode_md5(password))
        if res is not None:
            session['user_id'] = res.id
            session['type'] = res.role
            current_app.logger.info(
                'login success %s',
                str({
                    'username': username,
                    'type': res.role
                }))
            return success_warp({'type': res.role, 'user_id': res.id})
        else:
            current_app.logger.error(
                'login fail %s',
                str({
                    'username': username,
                    'password': password
                }))
            return fail_warp(errors['401']), 400
    except SQLAlchemyError as e:
        current_app.logger.error(e)
        return fail_warp(errors['501']), 500
Ejemplo n.º 22
0
def recommend_get_detail(recommend_id: int):
    """
    获取评论详情
    :param recommend_id:
    :return:
    """
    user_id = session['user_id']
    role = session['type']

    try:
        res = GetRecommend(role).get_recommend_detail(user_id, recommend_id)
        current_app.logger.info({
            'recommend': res
        })
        return success_warp(res)
    except SQLAlchemyError as e:
        current_app.logger.error(e)
        return fail_warp(e.args[0]), 500
    except RuntimeError as e:
        current_app.logger.error(e)
        return fail_warp(e.args[0]), 500
Ejemplo n.º 23
0
def delete_img():
    user_id = session['user_id']
    img_id = request.json.get('img_id')

    if img_id is None or img_id == '':
        current_app.logger.error('img delete %s', str({'img_id': img_id}))
        return fail_warp(errors['101']), 400

    try:
        delete_dir_img(img_id, user_id)
        current_app.logger.info('img delete %s',
                                str({
                                    'id': img_id,
                                    'user': user_id
                                }))
        return success_warp('删除成功')
    except SQLAlchemyError as e:
        current_app.logger.error(e)
        return fail_warp(e.args[0]), 500
    except RuntimeError as e:
        current_app.logger.error(e)
        return fail_warp(e.args[0]), 500
Ejemplo n.º 24
0
def recommend_delete():
    user_id = session['user_id']
    role = session['type']
    recommend_ids = request.json.get('recommend_id')
    if recommend_ids is None or type(recommend_ids) != list:
        current_app.logger.error('recommend id %s', str({
            'id': recommend_ids
        }))
        return fail_warp(errors['101']), 400

    try:
        GetRecommend(role).delete_recommend(user_id, recommend_ids)
        current_app.logger.info('recommend info %s', str({
            'user_id': user_id,
            'recommend_ids': recommend_ids
        }))
        return success_warp('delete recommend success')
    except SQLAlchemyError as e:
        current_app.logger.error(e)
        return fail_warp(e.args[0]), 500
    except RuntimeError as e:
        current_app.logger.error(e)
        return fail_warp(e.args[0]), 500
Ejemplo n.º 25
0
def get_gallery():
    """
    获取分类列表
    """
    user_id = session['user_id']
    data = request.args
    limit = int(data.get('limit')) if data.get('limit') is not None else 20
    page = int(data.get('page')) if data.get('page') is not None else 0

    try:
        count, dirs = get_dir(user_id, limit, page)
        current_app.logger.info('gallery info %s',
                                str({
                                    'dirs': dirs,
                                    'count': count
                                }))
        return success_warp({'count': count, 'dirs': dirs})
    except SQLAlchemyError as e:
        current_app.logger.error(e)
        return fail_warp(e.args[0]), 500
    except RuntimeError as e:
        current_app.logger.error(e)
        return fail_warp(e.args[0]), 500
Ejemplo n.º 26
0
def user_post():
    """
    添加用户
    :return:
    """
    user_id = session['user_id']
    user_type = session['type']
    data = request.json
    username = data.get('username')
    password = data.get('password')

    if username is None or username == '' or \
            password is None or password == '':
        current_app.logger.error(
            'params error %s',
            str({
                'username': username,
                'password': password,
                'parent_id': user_id
            }))
        return fail_warp(errors['101']), 400

    try:
        check_user(username)
        add_user(username, encode_md5(password), user_id, user_type + 1)
        current_app.logger.info('add user success %s',
                                str({
                                    'parent': user_id,
                                    'username': username
                                }))
        return success_warp('add success')
    except SQLAlchemyError as e:
        current_app.logger.error(e)
        return fail_warp(errors['501']), 500
    except RuntimeError as e:
        current_app.logger.error(e)
        return fail_warp(e.args[0]), 500
Ejemplo n.º 27
0
def user_get_all_user():
    """
    得到所有用户信息
    :return:
    """
    user_id = session['user_id']
    username = request.args.get('username')

    try:
        user, count = get_user(user_id, username)
        current_app.logger.info('user info %s',
                                str({
                                    'user': user,
                                    'total': count
                                }))
        return success_warp({'user': user, 'total': count})
    except SQLAlchemyError as e:
        current_app.logger.error(e)
        return fail_warp(errors['501']), 500
Ejemplo n.º 28
0
def get_gallery_detail(gallery_id):
    """
    获取分类详情
    """
    user_id = session['user_id']
    data = request.args
    limit = int(data.get('limit')) if data.get('limit') is not None else 20
    page = int(data.get('page')) if data.get('page') is not None else 0

    try:
        count, images = get_dir_detail(gallery_id, limit, page, user_id)
        current_app.logger.info('gallery detail info %s',
                                str({
                                    'count': count,
                                    'images': images
                                }))
        return success_warp({'count': count, 'images': images})
    except SQLAlchemyError as e:
        current_app.logger.error(e)
        return fail_warp(e.args[0]), 500
    except RuntimeError as e:
        current_app.logger.error(e)
Ejemplo n.º 29
0
    def get_user():
        user_id = session.get('user_id')

        if user_id is None and request.method != 'OPTIONS':
            return fail_warp(errors['402']), 401
Ejemplo n.º 30
0
 def wrapper(*args, **kwargs):
     user_role = session['type']
     if Permission.ROLE_MAP[int(
             user_role)] & role != Permission.ROLE_MAP[int(user_role)]:
         return fail_warp(errors['403']), 401
     return func(*args, **kwargs)