def login(request): if request.method == "POST": info = loads(request.body.decode('utf-8')) try: phone = info['phone'] user = User.objects.filter(phone=phone) if user.exists(): password = info['password'] if user[0].password == password: Device(dev_id=info['deviceId'], reg_id=info['deviceToken'], name=phone, is_active=True).save() user.update(status=True) tok = get_random_string(length=32) tok = Token(user=user[0], token=tok, expiry_date=datetime.datetime.now()) tok.save(force_insert=True) return my_response(True, 'success', tok.to_json()) else: return my_response(False, 'invalid information', {}) else: return my_response(False, 'user not found', {}) except Exception as e: e = str(e) if e.__contains__('UNIQUE constraint'): Device.objects.filter(dev_id=info['deviceId']).delete() return login(request) return my_response(False, 'error in login, check login body, ' + e, {}) else: return my_response(False, 'invalid method', {})
def register(request): if request.method == "POST": try: info = loads(request.body.decode('utf-8')) p = info['phone'] e = info['email'] this_otp = info['otp'] o = Otp.objects.get(email=e) if o.otp != this_otp: return my_response(False, 'confirmation code invalid', None) if time_diff(get_hour_minute(), o.expiry) > 5: o.delete() return my_response( False, 'confirmation code invalid, try from first', None) user = User( phone=p, email=e, name=info['name'], password=info['password'], ) user.save(force_insert=True) tok = get_random_string(length=32) tok = Token(user=user, token=tok, expiry_date=datetime.datetime.now()) tok.save(force_insert=True) o.delete() Device(dev_id=info['deviceId'], reg_id=info['deviceToken'], name=p, is_active=True).save() return my_response(True, 'user registered', tok.to_json()) except Exception as e: e = str(e) if e.__contains__('UNIQUE constraint'): return my_response(False, 'user exist! please sign in', {}) else: return my_response(False, 'error in register, check body send, ' + e, {}) else: return my_response(False, 'invalid method', {})