def login(): """用户登陆方法 验证用户名密码,返回token""" username = request.json.get('username') password = request.json.get('password') # 判断用户是否存在,用户不存在返回错误信息 user = user_manager.get_user_by_username(username) if not user: resp = helper.make_response_dict(10004, 'user not found', {'username': username}) return make_response(jsonify(resp), 404) # 检查密码是否正确,密码不正确返回错误信息 if not user.check_password(password): resp = helper.make_response_dict(10005, 'password incorrect', {'username': username}) return make_response(jsonify(resp), 400) # 生成并返回 token token = user.generate_token() if not token: resp = helper.make_response_dict(10006, 'token create failed', {'username': username}) return make_response(jsonify(resp), 500) resp = helper.make_response_dict(10001, 'login success', { 'username': username, 'token': token }) return make_response(jsonify(resp), 201)
def register(): """用户注册方法""" username = request.json.get('username') password = request.json.get('password') email = request.json.get('email') # TODO: username、password、email合法性检查 # 判断用户是否存在,用户存在时注册失败,提示用户创建失败 user = user_manager.get_user_by_username(username) if user: resp = helper.make_response_dict(10002, 'user exists', {'username': username}) return make_response(jsonify(resp), 400) # 创建新用户 # 处理创建时的异常 user = user_manager.create_user(username, password, email) if not user: resp = helper.make_response_dict( 10003, 'user create failed server ' 'internal error', {'username': username}) return make_response(jsonify(resp), 500) # 将用户对象赋值给 g.user,其它方法中可以通过 g.user 获取用户对象 g.user = user resp = helper.make_response_dict(10001, 'user create success', {'username': g.user.username}) return make_response(jsonify(resp), 201)
def get_user_skill(): """获取用户技能""" user = user_manager.get_user_by_username(g.user.username) user_skill = user.get_skill() if not user_skill: resp = helper.make_response_dict(10009, 'user skill not found', {'username': g.user.username}) return make_response(jsonify(resp), 500) resp = helper.make_response_dict(10001, 'success', {'skill': user_skill}) return make_response(jsonify(resp), 201)
def get_user_profile(): """获取用户信息""" user = user_manager.get_user_by_username(g.user.username) user_profile = user.get_profile() if not user_profile: resp = helper.make_response_dict(10007, 'user profile not found', {'username': g.user.username}) return make_response(jsonify(resp), 500) resp = helper.make_response_dict(10001, 'success', {'user_profile': user_profile}) return make_response(jsonify(resp), 201)
def update_user_skill(): """更新用户技能""" user = user_manager.get_user_by_username(g.user.username) update_skill = request.json.get('skill') user.update_skill(update_skill) user_skill = user.get_skill() if not user_skill or update_skill != user_skill: resp = helper.make_response_dict(10010, 'user skill update failed', {'username': g.user.username}) return make_response(jsonify(resp), 500) resp = helper.make_response_dict(10001, 'success', {'skill': user_skill}) return make_response(jsonify(resp), 201)
def work_year_job_count(): work_yesrs_job_counts = post_manager.working_year_Jobs_count() resp = helper.make_response_dict(40001, 'success', {'jobs': work_yesrs_job_counts}) return make_response(jsonify(resp), 200)
def get_user_skill(): """获取用户技能""" user = user_manager.get_user_by_username(g.user.username) user_skill = user.get_skill() resp = helper.make_response_dict(10001, 'success', {'skill': user_skill}) return make_response(jsonify(resp), 201)
def edulevel_job_avgsalary(): edulevel_job_avgsalarys = post_manager.education_avgsalary() resp = helper.make_response_dict(40001, 'success', {'jobs': edulevel_job_avgsalarys}) return make_response(jsonify(resp), 200)
def work_year_job_avgsalary(): work_years_job_avgsalarys = post_manager.working_year_avageSalary() resp = helper.make_response_dict(40001, 'success', {'jobs': work_years_job_avgsalarys}) return make_response(jsonify(resp), 200)
def education_level_job_count(): eduLevel_job_counts = post_manager.eduLevel_JobCount() resp = helper.make_response_dict(40001, 'success', {'jobs': eduLevel_job_counts}) return make_response(jsonify(resp), 200)
def jobsAndLauage_Top10_count(): lauage_post = post_manager.lauage_position_top10() resp = helper.make_response_dict(40001, 'success', {'jobs': lauage_post}) return make_response(jsonify(resp), 200)
def update_user_profile(): """更新用户信息""" user = user_manager.get_user_by_username(g.user.username) update_profile = request.json # TODO: 检查 update_profile 中参数的合法性 user.update_profile(update_profile) user_profile = user.get_profile() if not user_profile or \ not all(map(lambda x, y: update_profile[x] == user_profile[x], update_profile, user_profile)): resp = helper.make_response_dict(10008, 'user profile update failed', {'username': g.user.username}) return make_response(jsonify(resp), 500) resp = helper.make_response_dict(10001, 'success', {'user_profile': user_profile}) return make_response(jsonify(resp), 201)
def delete_user_message(): """删除用户消息(站内信)""" user = user_manager.get_user_by_username(g.user.username) msg_id = request.json.get('id') # TODO: 检查要修改的消息是否属于当前用户 user.delete_message(msg_id) msg_deleted = user.message_deleted(msg_id) if msg_deleted == '0': resp = helper.make_response_dict(10012, 'message delete failed', {'msg_id': msg_id}) return make_response(jsonify(resp), 500) resp = helper.make_response_dict(10001, 'message delete success', {'msg_id': msg_id}) return make_response(jsonify(resp), 201)
def update_user_message(): """更新用户消息(站内信)状态""" user = user_manager.get_user_by_username(g.user.username) msg_id = request.json.get('id') # TODO: 检查要修改的消息是否属于当前用户 user.update_message_status(msg_id) msg_has_read = user.get_message_status(msg_id) if msg_has_read == '0': resp = helper.make_response_dict(10011, 'message update failed', {'msg_id': msg_id}) return make_response(jsonify(resp), 500) resp = helper.make_response_dict(10001, 'message update success', {'msg_id': msg_id}) return make_response(jsonify(resp), 201)
def logout(): """用户退出方法 退出登陆,销毁token""" # TODO: 处理异常 token = request.json.get('token') g.user.revoke_token(token) resp = helper.make_response_dict(10001, 'logout success', {'username': g.user.username}) return make_response(jsonify(resp), 201)
def job_recommend(): skills = request.json.get('skill') # skills = ['python', 'css'] condition = "+.+".join(skills) job_recommend_user = post_manager.job_recommend(condition) resp = helper.make_response_dict(40001, 'success', {'job': job_recommend_user}) return make_response(jsonify(resp), 200)
def get_user_messages(): """获取用户消息(站内信)""" limit = request.json.get('limit') page = request.json.get('page') user = user_manager.get_user_by_username(g.user.username) messages = user.get_messages(limit, page) # TODO: 处理异常 resp = helper.make_response_dict(10001, 'success', {'messages': messages}) return make_response(jsonify(resp), 201)
def search_post(): token = request.json.get('token') search_key = request.json.get('search_key') limit = request.json.get('limit', 10) # 调用方法,在数据库中检索关键字,默认返回最近 10 条数据 search_result = csdn_manager.search_post(search_key, limit=limit) user_list = [] if token: # 根据 token 获取用户名,将用户名存到数据库中关键词搜索历史中 user = user_manager.get_user_by_token(token) csdn_manager.add_search_history(search_key, user.username) # 获取最近的 20 个搜索过该关键词的用户名列表 user_list = csdn_manager.get_search_history(search_key, user.username, 20) resp = helper.make_response_dict(40001, 'success', {'posts': search_result, 'user_list': user_list}) return make_response(jsonify(resp), 200)