예제 #1
0
    def post(self, request, format=None):
        access_key_check(request)
        country_code = request.data['country_code']
        number = request.data['number']
        first_name = request.data['first_name']
        last_name = request.data['last_name']
        email = request.data['email']
        if 'photo' in request.FILES:
            photo = request.data['photo']
        else:
            photo = ''
        udid = request.data['udid']

        phone = Phone.objects.get(
            Q(country_code=country_code) & Q(number=number))
        sms_code_udid = SmsCode.objects.get(phone=phone).udid

        if udid == '':
            raise AccessDenied("Нет udid")
        if udid != sms_code_udid:
            raise AccessDenied("udids не совпадают")

        if Profile.objects.filter(phone=phone).count() > 0:
            raise ProfileEngaged(
                "Аккаунт с указанным номером телефона уже существует")

        profile = Profile()
        profile.phone = phone
        profile.first_name = first_name
        profile.last_name = last_name
        profile.email = email
        if photo:
            profile.photo = upload_photo(photo, phone)
        else:
            profile.photo = ''
        host = request.META['HTTP_HOST']
        if host.startswith('www.'):
            host = host[4:]
        profile.payment_url = host + "/" + str(profile.external_id)
        try:
            qr = requests.get('https://api.scanova.io/v2/qrcode/url' +
                              '?url=' + profile.payment_url + '&apikey=' +
                              settings.SCANOVA_API_KEY)
            profile.qr = upload_qr(qr.content, phone)
        except:
            profile.qr = ''
        profile.save()

        token = Token.objects.create(profile=profile)

        result = {'token': token.token}
        return Response(result, status=status.HTTP_201_CREATED)
예제 #2
0
def register_profile():
    if request.method == 'POST':
        name = request.json.get("name", None)
        last_name = request.json.get("last_name", None)
        about_me = request.json.get("about_me", None)
        github = request.json.get("github", None)
        linkedin = request.json.get("linkedin", None)
        twitter = request.json.get("twitter", None)
        user_id = request.json.get("user_id", None)

        if not name:
            return "Email required", 401
        username = request.json.get("username", None)
        if not last_name:
            return "Username required", 401
        password = request.json.get("password", None)
        if not about_me:
            return "Password required", 401

        if not github:
            return "Password required", 401

        # email_query = User.query.filter_by(user_id=user_id).first()
        # if email_query:
        #     return "This email has been already taken", 401

        profile = Profile()
        profile.name = name
        profile.last_name = last_name
        profile.twitter = twitter
        profile.github = github
        profile.linkedin = linkedin
        profile.user_id = user_id
        profile.about_me = about_me
        profile.status = True

        db.session.add(profile)
        db.session.commit()

        response = {"msg": "Added successfully", "github": github}
        return jsonify(response), 200