コード例 #1
0
ファイル: views.py プロジェクト: Jacob45/liveeverfit
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)
コード例 #2
0
ファイル: views.py プロジェクト: Jacob45/liveeverfit
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)
コード例 #3
0
ファイル: views.py プロジェクト: Jacob45/liveeverfit
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)
コード例 #4
0
ファイル: views.py プロジェクト: Jacob45/liveeverfit
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)