Пример #1
0
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', {})
Пример #2
0
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', {})