def register_professional(request): serialized = CreateProSerializer(data=request.DATA) if serialized.is_valid(): user_data = {field: data for (field, data) in request.DATA.items()} email = user_data.pop('email', None) certification_name1 = user_data.pop('certification_name1', None) certification_number1 = user_data.pop('certification_number1', None) certification_name2 = user_data.pop('certification_name2', None) certification_number2 = user_data.pop('certification_number2', None) user_data.pop('password', None) user_data.pop('password2', None) user_data.pop('referred_by', None) user_data.pop('primary_address', None) if User.objects.filter(email=email).exists(): user = User.objects.get(email=email) pro = Professional.objects.create_prof(user) else: return Response({'error': 'Professional could not be created'}, status=status.HTTP_400_BAD_REQUEST) pro.__dict__.update(**user_data) if certification_name1: certification1 = Certification( user=pro, certification_name=certification_name1, certification_number=certification_number1) certification1.save() if certification_name2: certification2 = Certification( user=pro, certification_name=certification_name2, certification_number=certification_number2) certification2.save() pro.save() response = ReturnUserSerializer(instance=user).data response['token'] = user.auth_token.key response['id'] = user.id response['email'] = user.email response['img'] = user.img.url tier = user.tier #depending on tier, depends on user dynamic type if tier == 7 or tier == 6: response['type'] = 'professional' elif tier <= 5 and tier >= 2: response['type'] = 'upgraded' else: response['type'] = 'user' return Response(response, status=status.HTTP_201_CREATED) else: return Response(serialized._errors, status=status.HTTP_400_BAD_REQUEST)
def register_professional(request): serialized = CreateProSerializer(data=request.DATA) if serialized.is_valid(): user_data = {field: data for (field, data) in request.DATA.items()} email = user_data.pop('email', None) certification_name1 = user_data.pop('certification_name1', None) certification_number1 = user_data.pop('certification_number1', None) certification_name2 = user_data.pop('certification_name2', None) certification_number2 = user_data.pop('certification_number2', None) user_data.pop('password', None) user_data.pop('password2', None) user_data.pop('referred_by', None) user_data.pop('primary_address', None) if User.objects.filter(email = email).exists(): user = User.objects.get(email = email) pro = Professional.objects.create_prof(user) else: return Response({'error': 'Professional could not be created'}, status=status.HTTP_400_BAD_REQUEST) pro.__dict__.update(**user_data) if certification_name1: certification1 = Certification(user = pro, certification_name = certification_name1, certification_number = certification_number1) certification1.save() if certification_name2: certification2 = Certification(user = pro, certification_name = certification_name2, certification_number = certification_number2) certification2.save() pro.save() response = ReturnUserSerializer(instance=user).data response['token'] = user.auth_token.key response['id'] = user.id response['email'] = user.email response['img'] = user.img.url tier = user.tier #depending on tier, depends on user dynamic type if tier == 7 or tier == 6: response['type'] = 'professional' elif tier <= 5 and tier >= 2: response['type'] = 'upgraded' else: response['type'] = 'user' return Response(response, status=status.HTTP_201_CREATED) else: return Response(serialized._errors, status=status.HTTP_400_BAD_REQUEST)
def upgrade_to_professional(request): serialized = UserSerializer(data=request.DATA, partial=True) if serialized.is_valid(): user_data = {field: data for (field, data) in request.DATA.items()} user_id = user_data.get('id') certification_name1 = user_data.pop('certification_name1', None) certification_number1 = user_data.pop('certification_number1', None) certification_name2 = user_data.pop('certification_name2', None) certification_number2 = user_data.pop('certification_number2', None) if User.objects.filter(id = user_id).exists: user = User.objects.get(id = user_id) else: return Response({'error':['Can not upgrade']}, status=status.HTTP_400_BAD_REQUEST) if user.tier == 6 or user.tier == 7: return Response({'error': ['Already a profesional']}, status=status.HTTP_400_BAD_REQUEST) # free for now #There is a bug when you access the model, if you put this #code at the bottom it breaks user.stripe_cancel_subscription() pro = Professional.objects.create_prof(user) pro.__dict__.update(**user_data) pro.queue = True if certification_name1: certification1 = Certification(user = pro, certification_name = certification_name1, certification_number = certification_number1) certification1.save() if certification_name2: certification2 = Certification(user = pro, certification_name = certification_name2, certification_number = certification_number2) certification2.save() pro.save() email = '*****@*****.**' subject = 'New Professional' message = 'New Professional in Live Ever Fit ' + pro.email + '\n' + 'phone: ' + pro.phone + '\n' + 'address: ' + pro.primary_address.street_line1 + ' ' + pro.primary_address.street_line2 + ' ' + pro.primary_address.city + ' ' + pro.primary_address.state + ' ' + pro.primary_address.zipcode send_mail(subject, message, '*****@*****.**', [email]) return Response({'details': 'professional'}, status=status.HTTP_201_CREATED) else: return Response(serialized._errors, status=status.HTTP_400_BAD_REQUEST)
def upgrade_to_professional(request): serialized = UserSerializer(data=request.DATA, partial=True) if serialized.is_valid(): user_data = {field: data for (field, data) in request.DATA.items()} user_id = user_data.get("id") certification_name1 = user_data.pop("certification_name1", None) certification_number1 = user_data.pop("certification_number1", None) certification_name2 = user_data.pop("certification_name2", None) certification_number2 = user_data.pop("certification_number2", None) if User.objects.filter(id=user_id).exists: user = User.objects.get(id=user_id) else: return Response({"error": ["Can not upgrade"]}, status=status.HTTP_400_BAD_REQUEST) if user.tier == 6 or user.tier == 7: return Response({"error": ["Already a profesional"]}, status=status.HTTP_400_BAD_REQUEST) # free for now # There is a bug when you access the model, if you put this # code at the bottom it breaks user.stripe_cancel_subscription() pro = Professional.objects.create_prof(user) pro.__dict__.update(**user_data) pro.queue = True if certification_name1: certification1 = Certification( user=pro, certification_name=certification_name1, certification_number=certification_number1 ) certification1.save() if certification_name2: certification2 = Certification( user=pro, certification_name=certification_name2, certification_number=certification_number2 ) certification2.save() pro.save() email = "*****@*****.**" subject = "New Professional" message = ( "New Professional in Live Ever Fit " + pro.email + "\n" + "phone: " + pro.phone + "\n" + "address: " + pro.primary_address.street_line1 + " " + pro.primary_address.street_line2 + " " + pro.primary_address.city + " " + pro.primary_address.state + " " + pro.primary_address.zipcode ) send_mail(subject, message, "*****@*****.**", [email]) return Response({"details": "professional"}, status=status.HTTP_201_CREATED) else: return Response(serialized._errors, status=status.HTTP_400_BAD_REQUEST)