Beispiel #1
0
def show_spec(food_name, id):
    food = Food.get_or_none(id == id)

    if food:
        reviews = Review.select().where(Review.food_id == id)
        criterion_z1_list = [e.criterion_z1 for e in reviews]
        criterion_z2_list = [e.criterion_z2 for e in reviews]
        criterion_z3_list = [e.criterion_z3 for e in reviews]
        criterion_z4_list = [e.criterion_z4 for e in reviews]
        criterion_z5_list = [e.criterion_z5 for e in reviews]
        reviewers_list = []
        food_pic_list = []

        for i in [e.food_picture for e in reviews]:
            food_pic_list.append(S3_LOCATION + i)

        for i in [reviewer.user_id for reviewer in reviews]:
            reviewers_list.append(User.get_by_id(i).name)

        return jsonify({
            "criterion_z1_list": criterion_z1_list,
            "criterion_z2_list": criterion_z2_list,
            "criterion_z3_list": criterion_z3_list,
            "criterion_z4_list": criterion_z4_list,
            "criterion_z5_list": criterion_z5_list,
            "reviewers_list": reviewers_list,
            "food_pic_list": food_pic_list,
            "food_latitude": food.latitude,
            "food_longitude": food.longitude
        })

    else:
        return jsonify({"err": "Food dish does not exist"}), 400
Beispiel #2
0
def show(username):
    user = User.get_or_none(name=username)
    if user is not None:
        reviews = user.all_user_reviews
        review_food_pic_list = []
        food_name_list = []
        food_latitude_list = []
        food_longitude_list = []
        food_price_list = []

        for review in [review.food_picture for review in reviews]:
            review_food_pic_list.append(S3_LOCATION + review)

        for review_id in [review.food_id for review in reviews]:
            food = Food.get_or_none(Food.id == review_id)
            food_name_list.append(food.name)
            food_latitude_list.append(food.latitude)
            food_longitude_list.append(food.longitude)
            food_price_list.append(str(food.price))

        return jsonify({
            "name":
            user.name,
            # "profile_image": user.profile_image,
            "review_id_list": [review.id for review in reviews],
            "food_id_list": [review.food_id for review in reviews],
            "review_criterion_z1_list":
            [review.criterion_z1 for review in reviews],
            "review_criterion_z2_list":
            [review.criterion_z2 for review in reviews],
            "review_criterion_z3_list":
            [review.criterion_z3 for review in reviews],
            "review_criterion_z4_list":
            [review.criterion_z4 for review in reviews],
            "review_criterion_z5_list":
            [review.criterion_z5 for review in reviews],
            "review_food_pic_list":
            review_food_pic_list,
            "food_name_list":
            food_name_list,
            "food_latitude_list":
            food_latitude_list,
            "food_longitude_list":
            food_longitude_list,
            "food_price_list":
            food_price_list
            # "reviews": reviews
        })
    else:
        return jsonify({"err": "Something went wrong"}), 400
Beispiel #3
0
def create():

    logged_in_user_id = request.form.get('user_id')
    food_name = request.form.get('food_name')
    criterion_z1 = int(request.form.get('criterion_z1'))
    criterion_z2 = int(request.form.get('criterion_z2'))
    criterion_z3 = int(request.form.get('criterion_z3'))
    criterion_z4 = int(request.form.get('criterion_z4'))
    criterion_z5 = int(request.form.get('criterion_z5'))
    food_picture = request.files['food_picture']
    latitude = float(request.form.get('latitude'))
    longitude = float(request.form.get('longitude'))
    price = float(request.form.get('price'))

    # logged_in_user_id = request.json.get("user_id")
    # food_name = request.json.get('food_name')
    # criterion_z1 = request.json.get('criterion_z1')
    # criterion_z2 = request.json.get('criterion_z2')
    # criterion_z3 = request.json.get('criterion_z3')
    # criterion_z4 = request.json.get('criterion_z4')
    # criterion_z5 = request.json.get('criterion_z5')
    # food_picture = request.json.get('food_picture')
    # latitude = request.json.get('latitude')
    # longitude = request.json.get('longitude')
    # price = request.json.get('price')
    # tag_list = request.json.get('tag_list')

    food_already_exist = Food.select().where(
        Food.name == food_name, Food.latitude > latitude - 0.0002,
        Food.latitude < latitude + 0.0002, Food.longitude > longitude - 0.0002,
        Food.longitude < longitude + 0.0002)

    # print(food_already_exist, "FOOD ALREADY EXIST OBJECT")
    food_already_exist_id_arr = [
        food_already_exist_element.id
        for food_already_exist_element in food_already_exist
    ]

    # print(food_already_exist_id_arr, "FOOD ALREADY EXIST ARRAY")
    # print(food_already_exist_id_arr[0], "FIRST INDEX FOOD ALREADY EXIST")
    if food_already_exist:

        review_already_exist = Review.get_or_none(
            user_id=logged_in_user_id, food_id=food_already_exist_id_arr[0])
        # print(review_already_exist, "REVIEW ALREADY EXIST")

        if review_already_exist:
            print("HELLO WORLD I WENT IN ")
            return jsonify({
                "status":
                "failed",
                "message":
                "You have already submitted a review for this dish in this location"
            }), 400
        else:
            print("I AM CREATING A REVIEW INSTANCE")
            new_review_instance = Review(user_id=logged_in_user_id,
                                         food_picture=food_picture,
                                         criterion_z1=criterion_z1,
                                         criterion_z2=criterion_z2,
                                         criterion_z3=criterion_z3,
                                         criterion_z4=criterion_z4,
                                         criterion_z5=criterion_z5,
                                         food_id=food_already_exist_id_arr[0])
            if new_review_instance.save():
                file = request.files['food_picture']
                if file and allowed_file(file.filename):
                    file.filename = secure_filename(file.filename)
                    output = upload_file_to_s3(file, S3_BUCKET_NAME)
                    food_picture = str(output)
                    new_review_instance = Review(
                        user_id=logged_in_user_id,
                        food_picture=food_picture,
                        criterion_z1=criterion_z1,
                        criterion_z2=criterion_z2,
                        criterion_z3=criterion_z3,
                        criterion_z4=criterion_z4,
                        criterion_z5=criterion_z5,
                        food_id=food_already_exist_id_arr[0])
                    if new_review_instance.save():
                        # Creation of tag
                        # for tag_element in tag_list:
                        #     tag_already_exist = Tag.get_or_none(name = tag_element)
                        #     if tag_already_exist:
                        #         new_tag_review_instance = TagReview(review_id = new_review_instance.id, tag_id = tag_already_exist.id)
                        #         new_tag_review_instance.save()
                        #     else:
                        #         new_tag_instance = Tag(name = tag_element)
                        #         new_tag_instance.save()
                        #         new_tag_instance_id = Tag.get_or_none(name = tag_element).id
                        #         new_tag_review_instance = TagReview(review_id = new_review_instance.id, tag_id = new_tag_instance_id)
                        #         new_tag_review_instance.save()
                        # if food image upload success
                        return jsonify({
                            "logged_in_user_id": logged_in_user_id,
                            "food_picture": food_picture,
                            "criterion_z1": criterion_z1,
                            "criterion_z2": criterion_z2,
                            "criterion_z3": criterion_z3,
                            "criterion_z4": criterion_z4,
                            "criterion_z5": criterion_z5,
                            "food_id": food_already_exist.id,
                            "price": price,
                            "latitude": latitude,
                            "longitude": longitude
                            # "tag_list": tag_list
                        }), 200
                    else:
                        # if jsonify error
                        return jsonify({"err": "Something went wrong"}), 400
                else:
                    return jsonify({"err": "Something went wrong"}), 400
                    # if image fail to upload
    else:
        new_food_instance = Food(name=food_name,
                                 longitude=longitude,
                                 latitude=latitude,
                                 price=price)
        if new_food_instance.save():
            print(food_picture)
            # print(food_picture.files)
            file = request.files['food_picture']
            print(file.filename)
            if file and allowed_file(file.filename):
                file.filename = secure_filename(file.filename)
                output = upload_file_to_s3(file, S3_BUCKET_NAME)
                food_picture = str(output)

                # print(food_name,"NAME OF FOOD")

                # print(latitude, "LATTITUDE")
                # print(longitude, "LONGITUDE")
                # print(type(latitude), "LATITUDE TYPE OF")
                # print(type(longitude), "LONTITUDE TYPE OF")

                latitude = str(latitude)
                longitude = str(longitude)
                # print(latitude, "LATTITUDE 2")
                # print(longitude, "LONGITUDE 2")

                # print(type(latitude), "LATITUDE TYPE OF 2")
                # print(type(longitude), "LONTITUDE TYPE OF 2")

                new_food_instance = Food.get_or_none(name=food_name,
                                                     longitude=longitude,
                                                     latitude=latitude)
                # print(new_food_instance, "REVIEW INSTANCE")
                # print(new_food_instance.id, "REVIEW INSTANCE ID")
                new_review_instance = Review(user_id=logged_in_user_id,
                                             food_picture=food_picture,
                                             criterion_z1=criterion_z1,
                                             criterion_z2=criterion_z2,
                                             criterion_z3=criterion_z3,
                                             criterion_z4=criterion_z4,
                                             criterion_z5=criterion_z5,
                                             food_id=new_food_instance.id)
                if new_review_instance.save():
                    # Creation of tag
                    # for tag_element in tag_list:
                    #     tag_already_exist = Tag.get_or_none(name = tag_element)
                    #     if tag_already_exist:
                    #         new_tag_review_instance = TagReview(review_id = new_review_instance.id, tag_id = tag_already_exist.id)
                    #         new_tag_review_instance.save()
                    #     else:
                    #         new_tag_instance = Tag(name = tag_element)
                    #         new_tag_instance.save()
                    #         new_tag_instance_id = Tag.get_or_none(name = tag_element).id
                    #         new_tag_review_instance = TagReview(review_id = new_review_instance.id, tag_id = new_tag_instance_id)
                    #         new_tag_review_instance.save()
                    # if food image upload success
                    return jsonify({
                        "logged_in_user_id": logged_in_user_id,
                        "food_picture": food_picture,
                        "criterion_z1": criterion_z1,
                        "criterion_z2": criterion_z2,
                        "criterion_z3": criterion_z3,
                        "criterion_z4": criterion_z4,
                        "criterion_z5": criterion_z5,
                        "food_id": new_food_instance.id,
                        "price": price,
                        "latitude": float(latitude),
                        "longitude": float(longitude)
                        # "tag_list": tag_list
                    }), 200
                else:
                    # if jsonify error
                    return jsonify({"err": "Something went wrong"}), 400
            else:
                return jsonify({"err": "Something went wrong"}), 400
                # if image fail to upload
        else:
            return jsonify({"err": "Something went wrong"}), 400