Beispiel #1
0
def IssueCoupon(request):
    for i in range(len(request.data['issued_coupons'])):
        coupon = Coupon.objects.get(id=request.data['issued_coupons'][i])
        serializer = CouponSerializer(instance=coupon, data=request.data)
        if serializer.is_valid():
            serializer.save(isIssued=True)
    return Response({"message": "successfully issued"})
Beispiel #2
0
def EnrollCourseByPayment(request, pk, upk):
    course = Course.objects.get(id=pk)
    student = StudentProfile.objects.get(user_id=upk)
    print("before before")
    enrollment = Enrollment.objects.filter(student=student,
                                           course=course).first()
    print("before running")
    if not enrollment:
        print("running")
        c = Coupon.objects.create(course=course,
                                  coupon_key="",
                                  isValid=False,
                                  isIssued=True)
        print(c.id)
        serializer = CouponSerializer(instance=c, data=request.data)
        if serializer.is_valid():
            coupon = str(c.id) + ":" + str(c.course.id)
            coupon_key = hashlib.shake_256(coupon.encode()).hexdigest(5)
            serializer.save(coupon_key=coupon_key)
            enroll = Enrollment(course=course,
                                student=student,
                                enroll_key=coupon_key,
                                is_payment=True)
            enroll_serializer = CourseEnrollSerializer(enroll,
                                                       data=request.data)
            if enroll_serializer.is_valid():
                enroll_serializer.save()
                return Response(enroll_serializer.data)
            return Response(enroll_serializer.errors)
        return Response(serializer.errors)
    else:
        return Response({'message': 'You have already enrolled'}, status=403)
Beispiel #3
0
def EnrollCourse(request, pk, upk):
    course = Course.objects.get(id=pk)
    student = StudentProfile.objects.get(user_id=upk)
    couponList = Coupon.objects.filter(course=course)
    for c in couponList:
        if str(request.data['coupon_key']) == str(c.coupon_key):
            enroll = Enrollment(course=course,
                                student=student,
                                enroll_key=request.data['coupon_key'])
            condition = c.isValid == True and c.isIssued == True
            if request.method == "POST":
                if condition:
                    e = Enrollment.objects.filter(course=course,
                                                  student=student).first()
                    if not e:
                        serializer = CourseEnrollSerializer(enroll,
                                                            data=request.data)
                        if serializer.is_valid():
                            serializer.save()
                            couponSerializer = CouponSerializer(
                                instance=c, data=request.data)
                            if couponSerializer.is_valid():
                                couponSerializer.save(isValid=False)
                            return Response(serializer.data)
                        return Response(serializer.errors, status=403)
                    return Response(
                        {
                            "message":
                            "You have already enrolled this course..."
                        },
                        status=403)
                return Response({"message": "Coupon is not valid"}, status=403)

    return Response({"message": "coupon is not found"}, status=404)
Beispiel #4
0
def CouponGenerator(request, count, pk):
    course = Course.objects.filter(id=pk).first()
    try:
        Coupon.objects.bulk_create(
            [Coupon(course=course, coupon_key="") for __ in range(count)])
        couponL = Coupon.objects.filter(coupon_key="")
        for c in list(couponL):
            serializer = CouponSerializer(instance=c, data=request.data)
            if serializer.is_valid():
                coupon = str(c.id) + ":" + str(c.course.id)
                coupon_key = hashlib.shake_256(coupon.encode()).hexdigest(5)
                serializer.save(coupon_key=coupon_key)
        return Response({"message": "successfully created"})
    except Error:
        return Response({"message": "Unable to create the bulk of coupons"})
    else:
        return Response({"message": "Something went wrong"})