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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
def get(self, request, *args, **kwargs): rst=util.get_response(100,"success",Category.objects.all().values()) # print() return Response(rst)
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)
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)