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)
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