def update_user(): '''修改用户信息''' headers = request.headers user_id = g.user_id args = request.json try: mobile = args.get('mobile') if mobile: mobile_exists = User.query_user(mobile=mobile) if mobile_exists: return http_util.return_forbidden('手机号已经绑定其他用户') u = User.update_user_by_id(id=user_id, **args) if u: # 记录用户操作 Action.create_action( user_id=user_id, type=BaseConfig.TYPE_ACTION_UPDATE, res_id=user_id, res_type=BaseConfig.TYPE_USER, ext=args ) Search.sync_index_by_id(user_id, BaseConfig.TYPE_USER) return return_model() else: return http_util.return_internal_server_error() except BaseException as e: app.logger.error(e) return http_util.return_internal_server_error()
def resource_delete(): """资源详情""" args = request.json key = http_util.check_params(args, 'res_id', 'res_type') if key: return http_util.return_param_not_found(key) login_user_id = http_util.get_login_user_id(request) if not login_user_id: return http_util.return_no_authorization() res_id = http_util.get_param(args, 'res_id') res_type = http_util.get_param_int(args, 'res_type') try: is_del = Resource.delete_resource(res_id, res_type) if not is_del: return http_util.return_internal_server_error("删除失败") # 记录用户行为 Action.create_action( user_id=login_user_id, type=BaseConfig.TYPE_ACTION_DELETE, res_id=res_id, res_type=res_type ) return http_util.return_model() except BaseException as e: app.logger.error(e) return http_util.return_internal_server_error()
def user_similar(): try: res = get_similar_users(g.user.id) return http_util.return_model(res) except BaseException as e: app.logger.error(e) return http_util.return_internal_server_error()
def user_attentions(): login_user_id = get_login_user_id(request) args = request.args key = http_util.check_params(args, 'attention_status') if key: return http_util.return_param_not_found(key) user_id = http_util.get_param(args, 'user_id') attention_status = http_util.get_param_int(args, 'attention_status') page = http_util.get_param_int(args, 'page', BaseConfig.DEFAULT_PAGE) per_page = http_util.get_param_int(args, 'per_page', BaseConfig.DEFAULT_PER_PAGE) detail_id = None if user_id: detail_id = user_id else: detail_id = login_user_id if not detail_id: return return_no_authorization() try: res = get_user_attentions( user_id=detail_id, attention_status=attention_status, page=page, per_page=per_page, login_user_id=login_user_id ) return http_util.return_model(res) except BaseException as e: app.logger.error(e) return http_util.return_internal_server_error()
def delete(): '''首页列表''' args = request.form id = args.get('id', None) if id: flag = delete_user_by_id(id) if flag: return http_util.return_model() else: return http_util.return_internal_server_error() else: return http_util.return_forbidden('id not found')
def push_msg(): args = request.form res = umeng_push.push_ios_all(alert=args['description'], custom_params=args) print(res.result) if res.ok: p = Push.create_push(**args) if p: return http_util.return_model() return http_util.return_internal_server_error()
def create_anonymous(): '''获取匿名用户''' try: user = User.create_anonymous_user() authorization = generate_authorization(user.id) return return_model( header={"authorization": authorization} ) except BaseException as e: app.logger.error(e) return http_util.return_internal_server_error()
def upload_init(): args = request.args key = http_util.check_params(args, 'video_name') if key: return http_util.return_param_not_found(key) client_ip = request.remote_addr res = video_client.upload_init(video_name=args['video_name'], client_ip=client_ip) if res: res['client_ip'] = client_ip return http_util.return_model(data=res) else: return http_util.return_internal_server_error()
def create_location(): '''创建坐标''' user_id = http_util.get_login_user_id(request) if not user_id: return http_util.return_no_authorization() args = request.json key = http_util.check_params(args, 'lat', 'lng') if key: return http_util.return_param_not_found(key) user = User.query_user(id=user_id) if not user: return http_util.return_forbidden("this user_id can't found user ") lat = args['lat'] lng = args['lng'] la = models.create_location( user_id=user_id, lat=lat, lng=lng ) delete_poi( geo_id=env_config.GEOTABLE_ID, user_id=user_id ) create_poi( geo_id=env_config.GEOTABLE_ID, lat=lat, lng=lng, user_id=user_id, status=user.status ) User.update_user_by_id( id=user_id, lat=lat, lng=lng ) if la: return http_util.return_model() else: return http_util.return_internal_server_error()
def resource_delete_json(): '''首页列表''' args = request.form res_id = http_util.get_param(args, 'res_id', None) res_type = http_util.get_param_int(args, 'res_type', 0) if not res_id or not res_type: return http_util.return_forbidden('res_id or res_type is error') check_use = Resource.check_resource_use_status(res_id, res_type) if check_use: return http_util.return_forbidden("{},不能删除".format(check_use)) res = Resource.delete_resource(res_id, res_type) if res: return return_model() else: return http_util.return_internal_server_error()
def resource_detail(): """资源详情""" args = request.args key = http_util.check_params(args, 'res_id', 'res_type') if key: return http_util.return_param_not_found(key) login_user_id = http_util.get_login_user_id(request) res_id = http_util.get_param(args, 'res_id') res_type = http_util.get_param_int(args, 'res_type') try: detail = Resource.get_resource_detail( res_id=res_id, res_type=res_type, source_include=['comments', 'related_items', 'view_count', 'like_count', 'items', 'comment_count'], login_user_id=login_user_id ) if not detail: return http_util.return_404('res_id not found') # 记录用户行为 Action.create_action( user_id=login_user_id, type=BaseConfig.TYPE_ACTION_VIEW, res_id=res_id, res_type=res_type ) return http_util.return_model( data=detail ) except BaseException as e: app.logger.error(e) return http_util.return_internal_server_error()
def launch(): """启动接口""" try: res = {} # # hp = HomePage.query_daily_resource() # # if hp: # hp_show = Resource.get_resource_detail(hp.res_id, hp.res_type) # if hp_show: # res['home_page_show_resource'] = hp_show res['map_urls'] = [ 'http://img.hopapapa.com/common/13207_3550', 'http://img.hopapapa.com/common/13208_3550', ] return http_util.return_model(res) except BaseException as e: app.logger.error(e) return http_util.return_internal_server_error()
def signin(): args = request.json key = check_params(args, 'mobile', 'code') if key: return return_not_found(key) mobile = args['mobile'] code = args['code'] is_exist = sms.verify_code( mobile=mobile, code=code ) if mobile.startswith('110') and code == '0000': is_exist = True if mobile == '15890687745' and code == '0000': is_exist = True if not is_exist: return return_model(message='code {} is not found '.format(code), status=404) try: user = User.query_user(mobile=mobile) # 如果用户不存在则创建 if not user: # 获取token携带用户 login_user_id = get_login_user_id(request) login_user = User.query_user(id=login_user_id) # 如果登陆用户不存在,则用手机创建用户 if not login_user or login_user.mobile: user = User.create_user( mobile=mobile, status=BaseConfig.TYPE_USER_NORMAL ) else: user = user_db.update_user_by_id( user_id=login_user_id, mobile=mobile, status=BaseConfig.TYPE_USER_NORMAL ) authorization = generate_authorization(user.id) # 记录用户登录操作 Action.create_action( user_id=user.id, type=BaseConfig.TYPE_ACTION_LOGIN, res_id=user.id, res_type=BaseConfig.TYPE_USER, ext=args ) return return_model( header={"authorization": authorization} ) except BaseException as e: app.logger.error(e) return http_util.return_internal_server_error()
def signin_open(): '''第三方登录''' args = request.json need_keys = ['open_id', 'source', 'name', 'portrait'] key = check_params(args, *need_keys) if key: return http_util.return_param_not_found(key) login_user_id = get_login_user_id(request) try: open_id = args['open_id'] if login_user_id: luo = UserOpen.query_open_user( id=open_id, user_id=login_user_id ) if luo: return http_util.return_forbidden('当前用户已登录,不能重复登录') login_user = User.query_user( id=login_user_id, status=BaseConfig.TYPE_USER_NORMAL ) if login_user: return http_util.return_forbidden('当前用户已登录,不能重复登录') open_user = UserOpen.query_open_user(id=open_id) if open_user: # 如果第三方用户没有绑定用户,则生成用户并绑定 if not open_user.user_id: binding_user_id = "" if login_user_id: binding_user_id = login_user_id User.update_user_by_id( id=login_user_id, name=open_user.name, portrait=open_user.portrait, status=BaseConfig.TYPE_USER_NORMAL ) else: user = User.create_user( name=args.get('name'), portrait=args.get('portrait') ) binding_user_id = user.id open_user = UserOpen.update_open_user_by_id( id=open_id, user_id=binding_user_id ) else: # 创建第三方用户 if login_user_id: args['user_id'] = login_user_id open_user = UserOpen.create_open_user(**args) User.update_user_by_id( id=login_user_id, name=open_user.name, portrait=open_user.portrait, status=BaseConfig.TYPE_USER_NORMAL ) else: open_user = UserOpen.create_open_user_and_user(**args) user_id = open_user.user_id authorization = generate_authorization(user_id) # 记录用户登录操作 Action.create_action( user_id=user_id, type=BaseConfig.TYPE_ACTION_LOGIN, res_id=user_id, res_type=BaseConfig.TYPE_USER, ext=args ) return return_model( header={"authorization": authorization} ) except BaseException as e: app.logger.error(e) return http_util.return_internal_server_error()