36 lines
1.3 KiB
Python
36 lines
1.3 KiB
Python
from flask import Blueprint, jsonify, request, current_app
|
|
from flask_jwt_extended import jwt_required, get_jwt_identity
|
|
from app.models.system import SysUser
|
|
from app.extensions import db
|
|
|
|
user_prefs_bp = Blueprint('user_preferences', __name__)
|
|
|
|
|
|
@user_prefs_bp.route('/preferences', methods=['GET'])
|
|
@jwt_required()
|
|
def get_prefs():
|
|
identity = get_jwt_identity()
|
|
user_id = identity.get('id') if isinstance(identity, dict) else identity
|
|
if not user_id:
|
|
return jsonify({'code': 401, 'msg': '无效身份'}), 401
|
|
user = SysUser.query.get(user_id)
|
|
if not user:
|
|
return jsonify({'code': 404, 'msg': '用户不存在'}), 404
|
|
return jsonify({'code': 200, 'msg': 'success', 'data': user.preferences or {}})
|
|
|
|
|
|
@user_prefs_bp.route('/preferences', methods=['PUT'])
|
|
@jwt_required()
|
|
def update_prefs():
|
|
identity = get_jwt_identity()
|
|
user_id = identity.get('id') if isinstance(identity, dict) else identity
|
|
if not user_id:
|
|
return jsonify({'code': 401, 'msg': '无效身份'}), 401
|
|
user = SysUser.query.get(user_id)
|
|
if not user:
|
|
return jsonify({'code': 404, 'msg': '用户不存在'}), 404
|
|
data = request.get_json() or {}
|
|
user.preferences = data
|
|
db.session.commit()
|
|
return jsonify({'code': 200, 'msg': 'success', 'data': user.preferences})
|