Exemplo n.º 1
0
    def post(self, request, *args, **kwargs):

        code = request.data.get('code')
        new_password = request.data.get('new-password')

        print(code)

        try:
            uid = cache.get(code)
            cache.delete(code)

            user = User.objects.get(id=uid)

            salt = util.create_salt()
            user.salt = salt
            user.password = util.create_md5(new_password, salt)

            user.save()

            rst = util.get_response(100, "success", None)
            return Response(rst)
        except Exception as e:
            print(e)

            rst = util.get_response(400, "user not exists", None)
            return Response(rst)
Exemplo n.º 2
0
    def put(self, request, *args, **kwargs):
        username = request.data.get('username')
        password = request.data.get('password')
        email = request.data.get('email')

        salt = util.create_salt()
        password = util.create_md5(password, salt)

        try:
            user = User.objects.get(username=username)
            rst = util.get_response(400, "username exists", None)
            return Response(rst)
        except User.DoesNotExist:
            user = User.objects.create(username=username,
                                       password=password,
                                       salt=salt)

        user.email = email
        user.save()

        send_mail('Success',
                  'Thank you cor your sign up',
                  '*****@*****.**', [email],
                  fail_silently=False)

        rst = util.get_response(100, "success", None)

        return Response(rst)
Exemplo n.º 3
0
    def delete(self, request, *args, **kwargs):
        token = request.META.get('HTTP_TOKEN')
        u_id = token.split("$")[1]
        if token == cache.get(u_id):
            cache.delete(u_id)
            rst = util.get_response(100, "success", None)
        else:
            rst = util.get_response(400, "not logged in", None)

        return Response(rst)
Exemplo n.º 4
0
    def get(self, request):
        user_id = request.query_params.get("userid")

        try:
            user = User.objects.get(id=user_id)
        except:
            user = request.user

        user_recipe = Recipe.objects.filter(user=user)
        user_recipe_list = []
        for r in user_recipe:
            u_recipe_id = r.id
            u_recipe_title = r.recipe_title
            u_recipe_description = r.description
            u_recipe_update_date = r.update_date
            recipe_src = Recipe.objects.filter(
                id=r.id).values()[0]["intro_image"]
            user_recipe_result = {
                "recipe_id": u_recipe_id,
                "recipe_title": u_recipe_title,
                "recipe_description": u_recipe_description,
                "recipe_update_date": u_recipe_update_date,
                "recipe_src": recipe_src,
            }
            user_recipe_list.append(user_recipe_result)

        rst = util.get_response(100, "success", user_recipe_list)
        return Response(rst)
Exemplo n.º 5
0
    def post(self, request):
        recipe_id = request.data.get("recipe_id")
        recipe = Recipe.objects.get(id=recipe_id)
        user = request.user

        try:
            Recipe_favourite.objects.get(user=user, recipe=recipe)
            return Response(
                util.get_response(400, "favourite recipe exist", None))
        except Recipe_favourite.DoesNotExist:
            new_recipe = Recipe_favourite.objects.create(user=user,
                                                         recipe=recipe)

        rst = util.get_response(100, "success", None)

        return Response(rst)
Exemplo n.º 6
0
    def get(self, request):
        user_id = request.query_params.get("userid")

        try:
            user = User.objects.get(id=user_id)
        except:
            user = request.user
        recipes = Recipe_favourite.objects.filter(user=user).values()

        print(recipes)
        data = []
        for r in recipes:
            temp = {}
            temp["id"] = r["recipe_id"]
            temp["description"] = Recipe.objects.get(
                id=r["recipe_id"]).description

            temp["title"] = Recipe.objects.get(id=r["recipe_id"]).recipe_title

            meta = Recipe.objects.filter(
                id=r["recipe_id"]).values()[0]["intro_image"]
            # print(meta)

            temp["meta"] = meta
            data.append(temp)

        rst = util.get_response(100, "success", data)

        return Response(rst)
Exemplo n.º 7
0
    def post(self, request):
        # user_id=request.data.get("id")
        # user=User.objects.get(id=user_id)
        user = request.user

        post_email = request.data.get("email")
        post_dob = request.data.get("dob")
        post_introduction = request.data.get("introduction")
        post_gender = request.data.get("gender")

        print(post_email, post_introduction, post_gender)

        if post_email != None:
            user.email = post_email
        if post_introduction != None:
            user.introduction = post_introduction
        if post_gender != None:
            user.gender = post_gender
        if post_dob != None:
            user.date_of_birth = post_dob

        user.save()

        rst = util.get_response(100, "success", None)

        return Response(rst)
Exemplo n.º 8
0
    def post(self, request, *args, **kwargs):
        user = request.user

        old_password = request.data.get('old-password')
        new_password = request.data.get('new-password')

        if user.password == util.create_md5(old_password, user.salt):
            salt = util.create_salt()
            user.salt = salt
            user.password = util.create_md5(new_password, salt)
            user.save()

            rst = util.get_response(100, "success", None)
            return Response(rst)
        else:
            rst = util.get_response(400, "old password not correct", None)
            return Response(rst)
Exemplo n.º 9
0
    def post(self, request, *args, **kwargs):
        file_uploaded = request.FILES['document']
        recipe_id = request.data.get('recipe_id')
        recipe = Recipe.objects.get(id=recipe_id)
        recipe.intro_image = file_uploaded
        recipe.save()

        rst = util.get_response(100, "success", None)

        return Response(rst)
Exemplo n.º 10
0
    def post(self, request, *args, **kwargs):
        file_uploaded = request.FILES['document']
        comment_id = request.data.get('comment_id')
        comment = Comment.objects.get(id=comment_id)

        new_entry = Upload_comment_meta.objects.create(
            comment=comment, comment_image=file_uploaded)

        rst = util.get_response(100, "success", None)

        return Response(rst)
Exemplo n.º 11
0
    def post(self, request, *args, **kwargs):
        from_user_obj = request.user
        to_user = request.data.get('to_user')

        try:
            User_follow.objects.get(from_user=from_user_obj,
                                    to_user=User.objects.get(id=to_user))
            return Response(util.get_response(400, "user follow exist", None))
        except User_follow.DoesNotExist:
            from_user_obj.total_following = from_user_obj.total_following + 1
            from_user_obj.save()
            to_user_obj = User.objects.get(id=to_user)
            to_user_obj.total_follower = to_user_obj.total_follower + 1
            to_user_obj.save()
            follow = User_follow.objects.create(from_user=from_user_obj,
                                                to_user=to_user_obj)
            follow.save()

        rst = util.get_response(100, "success", None)
        return Response(rst)
Exemplo n.º 12
0
    def post(self, request, *args, **kwargs):

        email = request.data.get('email')

        try:
            code = util.create_salt()
            user = User.objects.get(email=email)
            cache.set(code, user.id, timeout=3600)

            send_mail('Code',
                      code,
                      '*****@*****.**', [email],
                      fail_silently=False)

            rst = util.get_response(100, "success", None)
            return Response(rst)
        except:
            rst = util.get_response(400, "user not exists", None)

            return Response(rst)
Exemplo n.º 13
0
    def post(self, request, *args, **kwargs):
        comment_content = request.data.get('comment_content')
        # user_name = request.data.get('user_name')
        # user_id = User.objects.get(user_name = user_name).id
        user = request.user
        recipe_id = request.data.get('recipe_id')
        recipe = Recipe.objects.get(id=recipe_id)
        new_entry = Comment.objects.create(comment_user=user,
                                           comment_content=comment_content,
                                           comment_recipe=recipe)

        rst = util.get_response(100, "success", None)
        return Response(rst)
Exemplo n.º 14
0
 def get(self, request, *args, **kwargs):
     start = request.query_params.get('start')
     end = request.query_params.get('end')
     start, end = util.compare_time(start, end)
     user = request.user
     cals = Calendar.objects.filter(user=user,
                                    date__gte=start,
                                    date__lte=end).values()
     for i in cals:
         i["recipe_title"] = Recipe.objects.get(
             id=i["recipe_id"]).recipe_title
     rst = util.get_response(100, "success", cals)
     return Response(rst)
Exemplo n.º 15
0
    def post(self, request, *args, **kwargs):
        u_name = request.data.get('username')
        u_password = request.data.get('password')

        try:
            user = User.objects.get(username=u_name)

            data = {
                'token': "",
            }
            if cache.get(user.id) == None:
                if user.password == util.create_md5(u_password, user.salt):

                    token = "${}$".format(user.id) + uuid.uuid4().hex

                    cache.set(user.id, token, timeout=36000)
                    data['token'] = token

                    rst = util.get_response(100, "success", data)

                    return Response(rst)
                else:
                    rst = util.get_response(
                        400, "username or password not correct", None)
                    return Response(rst)
            else:
                if user.password == util.create_md5(u_password, user.salt):
                    data['token'] = cache.get(user.id)
                    rst = util.get_response(100, "success", data)
                    return Response(rst)
                else:
                    rst = util.get_response(
                        400, "username or password not correct", None)
                    return Response(rst)
        except User.DoesNotExist:
            rst = util.get_response(400, "username or password not correct",
                                    None)
            return Response(rst)
Exemplo n.º 16
0
    def post(self, request, *args, **kwargs):
        file_uploaded = request.FILES['document']
        user = request.user

        user.profile_image = file_uploaded
        user.save()

        data = {
            "src": User.objects.filter(id=user.id).values()[0]["profile_image"]
        }

        rst = util.get_response(100, "success", data)

        return Response(rst)
Exemplo n.º 17
0
    def get(self, request, *args, **kwargs):
        user_id = request.query_params.get("userid")

        try:
            user = User.objects.get(id=user_id)
        except:
            user = request.user

        data = {
            "username": user.username,
            "avatar":
            User.objects.filter(id=user.id).values()[0]["profile_image"]
        }
        rst = util.get_response(100, "success", data)
        return Response(rst)
Exemplo n.º 18
0
 def get(self, request):
     user_id = request.query_params.get("user_id")
     if user_id == None:
         user = request.user
     else:
         user = User.objects.get(id=user_id)
     get_profile = {
         "username": user.username,
         "email": user.email,
         "introduction": user.introduction,
         "gender": user.gender,
         "dob": user.date_of_birth,
         "dor": user.register_date
     }
     rst = util.get_response(100, "success", get_profile)
     return Response(rst)
Exemplo n.º 19
0
    def get(self, request):
        position = request.data.get("position")
        recipes = Recipe_mark.objects.filter(mark=position)
        data = []
        for r in recipes:
            temp = {}
            temp["id"] = r.recipe_id

            temp["title"] = Recipe.objects.get(id=r.recipe_id).recipe_title

            meta = Recipe.objects.filter(
                id=r.recipe_id).values()[0]["intro_image"]
            # print(meta)

            temp["meta"] = meta
            data.append(temp)

        rst = util.get_response(100, "success", data)

        return Response(rst)
Exemplo n.º 20
0
    def get(self, request, *args, **kwargs):
        user_id = request.query_params.get("userid")

        try:
            user = User.objects.get(id=user_id)
        except:
            user = request.user

        following = []
        for u in User_follow.objects.filter(from_user=user).values():
            temp = {}
            temp["to_user_id"] = u["to_user_id"]
            temp["to_user_name"] = User.objects.get(
                id=u["to_user_id"]).username
            temp["to_user_avatar"] = User.objects.filter(
                id=u["to_user_id"]).values()[0]["profile_image"]
            following.append(temp)

        follower = []
        for u in User_follow.objects.filter(to_user=user).values():
            temp = {}
            temp["from_user_id"] = u["from_user_id"]
            temp["from_user_name"] = User.objects.get(
                id=u["from_user_id"]).username
            temp["from_user_avatar"] = User.objects.filter(
                id=u["from_user_id"]).values()[0]["profile_image"]
            follower.append(temp)

        data = {
            "follower": user.total_follower,
            "follower_data": follower,
            "following": user.total_following,
            "following_data": following
        }

        rst = util.get_response(100, "success", data)

        return Response(rst)
Exemplo n.º 21
0
    def post(self, request, *args, **kwargs):
        user = request.user
        recipe_id = request.data.get('recipe_id')
        date = request.data.get('date')
        meal_type = request.data.get('meal_type')

        try:
            calendar = Calendar.objects.get(date=date,
                                            meal_type=meal_type,
                                            user=user)
            calendar.recipe = Recipe.objects.get(id=recipe_id)
            calendar.save()
        except Calendar.DoesNotExist:
            calendar = Calendar.objects.create(
                date=date,
                meal_type=meal_type,
                user=user,
                recipe=Recipe.objects.get(id=recipe_id))
            calendar.save()

        rst = util.get_response(100, "success", None)

        return Response(rst)
Exemplo n.º 22
0
    def post(self, request):

        user = request.user
        # current_user = User.objects.get(id = user_id)
        recipe_title = request.data.get("recipe_title")
        description = request.data.get("description")
        is_published = request.data.get("is_published")

        category = request.data.get("category")
        category_list = category.split(",")

        for c in category_list:
            try:
                category_object = Category.objects.get(id=c)
            except:
                rst = util.get_response(
                    400, "You must choose at least one category!", None)
                return Response(rst)

        # Save mutiple step inputs into a list
        step_decription_list = []
        step_count = request.data.get("step_count")
        for i in range(int(step_count)):
            step_number = i + 1
            input_step_name = "step-" + str(step_number)
            step_decription_list.append(request.data.get(input_step_name))
        print(step_decription_list)

        # Save mutiple ingredient inputs into a list
        ingredient_name_list = []
        ingredient_link_list = []
        ingredient_count = request.data.get("ingredient_count")
        print(ingredient_count)
        for i in range(int(ingredient_count)):
            ingredient_number = i + 1
            input_ingredient_name = "ingredient-" + str(ingredient_number)
            ingredient_name_list.append(
                request.data.get(input_ingredient_name))
            input_ingredient_link = "ingredient-" + str(
                ingredient_number) + "-shoppinglink"
            ingredient_link_list.append(
                request.data.get(input_ingredient_link))
            print(ingredient_link_list)

        if recipe_title != None and description != None and is_published != None and category != None:

            new_recipe = Recipe.objects.create(recipe_title=recipe_title,
                                               description=description,
                                               is_published=is_published,
                                               user=user)
            new_recipe.save()

            # Add the total number of recipe amount of a category
            # Add categories for a recipe
            for c in category_list:
                category_object = Category.objects.get(id=c)
                category_object.total_recipe = category_object.total_recipe + 1
                category_object.save()
                recipe_category_relationship = Recipe_category.objects.create(
                    category_of_recipe_id=c,
                    recipe_of_category_id=new_recipe.id)
                recipe_category_relationship.save()

            # Add ingredients for a recipe
            for i in range(0, len(ingredient_name_list)):
                ingredient_object = Ingredient.objects.create(
                    ingredient_name=ingredient_name_list[i],
                    ingredient_related_recipe_id=new_recipe.id,
                    ingredient_link=ingredient_link_list[i])
                ingredient_object.save()

            # Add steps for a recipe
            step_rtv = {}
            count = 1
            for s in step_decription_list:
                step_object = Step.objects.create(
                    step_description=s, related_recipe_id=new_recipe.id)
                step_object.save()
                step_rtv[count] = step_object.id
                count += 1

            data = {"recipe_id": new_recipe.id, "steps": step_rtv}

            rst = util.get_response(100, "success", data)
            return Response(rst)
Exemplo n.º 23
0
 def get(self, request, *args, **kwargs):
     rst=util.get_response(100,"success",Category.objects.all().values())
     # print()
     return Response(rst)
Exemplo n.º 24
0
    def get(self, request):
        recipe_id = request.data.get("id")
        recipe = Recipe.objects.get(id=recipe_id)
        category_queryset = Recipe_category.objects.filter(
            recipe_of_category_id=recipe_id)
        step_queryset = Step.objects.filter(related_recipe_id=recipe_id)

        ingredient_queryset = Ingredient.objects.filter(
            ingredient_related_recipe_id=recipe_id)
        comment_all_queryset = Comment.objects.filter(
            comment_recipe_id=recipe_id)
        # print(Comment.objects.get(comment_recipe_id = recipe_id).comment_content)

        get_recipe_id = recipe.id

        get_recipe_title = recipe.recipe_title
        get_recipe_description = recipe.description
        get_is_published = recipe.is_published
        get_update_date = recipe.update_date
        get_user_id = recipe.user_id
        get_user_name = User.objects.get(id=recipe.user_id).username
        get_recipe_src = Recipe.objects.filter(
            id=recipe.id).values()[0]["intro_image"]

        get_category_list = []
        for c in category_queryset:
            get_category_list.append(
                Category.objects.get(id=c.category_of_recipe_id).id)
            # get_category_list.append(c.category_of_recipe_id)
            # print(c.category_of_recipe_id)

        get_step_list = []
        for s in step_queryset:
            get_step_list.append(
                (s.step_description,
                 Step.objects.filter(id=s.id).values()[0]["step_image"]))

        get_ingredient_list = []
        for i in ingredient_queryset:
            get_ingredient_list.append((i.ingredient_name, i.ingredient_link))

        get_comment_dic_list = []
        for c in comment_all_queryset:
            single_comment = {}
            single_comment['comment_user_id'] = c.comment_user_id
            single_comment['comment_user_name'] = User.objects.get(
                id=c.comment_user_id).username
            single_comment['comment_content'] = c.comment_content
            single_comment['comment_date'] = c.comment_publish_date.strftime(
                '%Y-%m-%d')
            # print(single_comment)
            get_comment_dic_list.append(single_comment)

        get_recipe = {
            "id": get_recipe_id,
            "intro_src": get_recipe_src,
            "title": get_recipe_title,
            "description": get_recipe_description,
            "is_published": get_is_published,
            "update_date": get_update_date,
            "user_id": get_user_id,
            "category_id_list": get_category_list,
            "step_list": get_step_list,
            "ingredient_name_list": get_ingredient_list,
            "user_name": get_user_name,
            "comment_dic_list": get_comment_dic_list,
        }

        # print(get_recipe)
        rst = util.get_response(100, "success", get_recipe)
        return Response(rst)
Exemplo n.º 25
0
    def get(self, request):
        # search recipes for a user

        # mark_type = request.data.get("mark")
        category_type = request.data.get("category")
        recipe_name = request.data.get("recipe_title")

        # search recipes by mark

        # if mark_type!=None:
        #     mark_list = ["hottest", "newest", "simplest"]

        #     if mark_type != None:
        #         if mark_type in mark_list:
        #             try:
        #                 m_recipe=Recipe_mark.objects.filter(mark__icontains=mark_type.lower())
        #             except:
        #                 rst=util.get_response(100,"success",None)
        #                 return Response(rst)

        #             mark_result_list = []
        #             for r in m_recipe:
        #                 get_recipe = r.recipe
        #                 get_mark = r.mark

        #                 result = {
        #                     "recipe_user_id": get_recipe.user_id,
        #                     "recipe_id": get_recipe.id,
        #                     "recipe_title": get_recipe.recipe_title,
        #                     "recipe_description": get_recipe.description,
        #                     "recipe_update_date": get_recipe.update_date,
        #                     "mark": get_mark
        #                 }
        #                 mark_result_list.append(result)

        #             rst=util.get_response(100,"success",mark_result_list)
        #             return Response(rst)
        # elif
        if category_type != None:
            # search by category
            category_list = [
                "Breakfast", "Lunch", "Dinner", "Meatlovers", "Vegetarian",
                "Asian", "Italian", "Dessert", "Seafood"
            ]

            # From Category table get corresponding id of input category string
            if category_type != None:
                if category_type in category_list:
                    # c_recipe is an object
                    try:
                        c_recipe = Category.objects.get(
                            category__icontains=category_type.lower())
                    except:
                        rst = util.get_response(100, "success", None)
                        return Response(rst)

                    c_id = c_recipe.id
                    # find the line in Recipe_category table with corresponding recipe_id of input category (1 category -> many recipe)
                    category_recipe_queryset = Recipe_category.objects.filter(
                        category_of_recipe_id=c_id)

                    # from Recipe_category table get recipe_of_category_id and find corresponding line in Recipe table and then get the corresponding id
                    recipe_list = []
                    for c in category_recipe_queryset:
                        recipe_list.append(
                            Recipe.objects.get(id=c.recipe_of_category_id).id)
                    # print(recipe_list)

                    result_list = []
                    for r in recipe_list:
                        # print(r)
                        get_id = Recipe.objects.get(id=r).id
                        get_title = Recipe.objects.get(id=r).recipe_title
                        get_description = Recipe.objects.get(id=r).description
                        get_update_date = Recipe.objects.get(id=r).update_date
                        get_userid = Recipe.objects.get(id=r).user_id
                        recipe_src = Recipe.objects.filter(
                            id=r).values()[0]["intro_image"]
                        result = {
                            "id": get_id,
                            "title": get_title,
                            "description": get_description,
                            "update_date": get_update_date,
                            "recipe_src": recipe_src,
                        }
                        result_list.append(result)
                    # print(result_list)
                    rst = util.get_response(100, "success", result_list)
                    return Response(rst)

        elif recipe_name != None:
            # search with title

            reicpe_queryset = Recipe.objects.filter(
                recipe_title__icontains=recipe_name)
            result_list = []
            for r in reicpe_queryset:
                get_id = r.id
                get_title = r.recipe_title
                get_description = r.description
                get_update_date = r.update_date
                get_userid = r.user_id
                recipe_src = Recipe.objects.filter(
                    id=r.id).values()[0]["intro_image"]
                result = {
                    "id": get_id,
                    "title": get_title,
                    "description": get_description,
                    "update_date": get_update_date,
                    "recipe_src": recipe_src,
                }
                result_list.append(result)
            # print(result_list)
            rst = util.get_response(100, "success", result_list)

            return Response(rst)