def register(): json=request.get_json() try: user = User(username=json.get('username'),password=json.get('password'),name=json.get('name')).save() return succ({'token':TokenRef.get_token(user)}) except mongoengine.errors.ValidationError as err: return erro('username or password is out of rules.') except mongoengine.errors.NotUniqueError as err: return erro('username exists.')
def login(): # username = request.args.get('username') # password = request.args.get('password') # if username and password: # users = User.objects(username=username,password=password) # if len(users) is 1: # return succ({'token':TokenRef.get_token(users[0])}) # else: # return erro('Wrong username or password.') # else: # return erro('please provides username and password.') args = request.args try: users = User.objects(username=args.get('username'),password=args.get('password')) return succ({'token':TokenRef.get_token(users[0])}) except IndexError: return erro('Wrong username or password.') except mongoengine.errors.ValidationError as err: return erro('please provides username and password.')
def device_post(): def bind_device(user,device): user.update(push__devices=device) (_type,instance)=TokenRef.get_ref(request.headers.get('token')) json=request.get_json() if _type is 'user': user = instance if not json: json = {} arg_device = json.get('device') arg_bindcode = json.get('bind_code') arg_name=json.get('name') if arg_device and arg_bindcode: #bind a device try: d= Device.get_instance(arg_device) if not d: return erro('wrong device id.') if arg_bindcode is d.bind_code: bind_device(user,d) return succ_doc(d) else: return erro('wring bind code.') finally: #if program here,some mistake must happend. return erro('unknown misktake.') elif arg_device: #clone a device try: be_cloned= Device.get_instance(arg_device) if not be_cloned: return erro('wrong device id.') clone_device = Device.clone(be_cloned) clone_device.name = arg_name clone_device.save() bind_device(user,clone_device) return succ({ 'device':clone_device.id, 'token':TokenRef.get_token(clone_device), 'bind_code':clone_device.bind_code }) finally:#if program here,some mistake must happend. return erro('unknown misktake.') else: #create a new Device try: device = Device(name = arg_name).save() bind_device(user,device) return succ({ 'device':str(device.id), 'token':TokenRef.get_token(device), 'bind_code':device.bind_code }) except Exception as err: raise(err); return erro(err) # finally: # return erro('unknown misktake.') elif _type is 'device': #update a device try: instance.update(**json) return succ_doc(instance) finally: return erro('something wrong when update the device.') else: return erro('wrong token')