Example #1
0
    def post(self):
        fb_id = self.get_argument("fb_id")
        review_text = self.get_argument("review_text")
        __eatery_id = self.get_argument("__eatery_id")
        __eatery_name = self.get_argument("eatery_name")

        if not users_details_collection.find_one({"fb_id": fb_id}):
            self.set_status(401)
            self.write({
                "error": True,
                "success": False,
                "messege": "User needs to login"
            })
            self.finish()
            return

        fmt = "%d %B %Y %H:%M:%S"
        now_utc = datetime.now(timezone('UTC'))
        utctimestamp = __utc.strftime(fmt)

        indian = now_utc.astimezone(timezone('Asia/Kolkata'))
        indian_time = indian.strftime(fmt)

        user = users_details_collection.find_one({"fb_id": fb_id}, {
            "_id": False,
            "fb_id": False,
            "email": False
        })

        __dict = {
            "review_text": review_text,
            "fb_id": fb_id,
            "__eatery_id": __eatery_id,
            "__eatery_name": __eatery_name
        }
        review_id = hashlib.sha256(indian_time + __eatery_id + review_text +
                                   _dict.get("fb_id")).hexdigest()

        if users_reviews_collection.find_one(__dict):
            self.write({
                "error": True,
                "success": False,
                "messege": "This review has already been posted"
            })
            self.finish()
            return

        __dict.update({"utc": utctimestamp})
        __dict.update({"epoch": indian_time})
        __dict.update(user)
        __dict.update({"review_id": review_id})
        users_reviews_collection.insert(__dict)

        self.write({
            "error": False,
            "success": True,
            "messege": "This review has been posted",
        })
        self.finish()
        return
Example #2
0
    def post(self):
        review_id = self.get_argument("review_id")
        fb_id = self.get_argument("fb_id")

        if users_reviews_collection.find_one({
                "review_id": review_id,
                "users": {
                    "fb_id": fb_id
                }
        }):
            self.write({
                "success": False,
                "error": True,
                "messege": "User already have liked the picture",
            })
            self.finish()
            return

        users_reviews_collection.update({"review_id": review_id}, {
            "$inc": {
                "likes": 1
            },
            "$addToSet": {
                "users": {
                    "fb_id": fb_id
                }
            }
        },
                                        upsert=False)
        users_details_collection.update(
            {"fb_id": fb_id},
            {"$addToSet": {
                "reviews_liked": {
                    "reviews_id": review_id
                }
            }},
            upsert=False)

        self.write({
            "success": True,
            "error": False,
            "messege": "Review has been liked by the user",
        })
        self.finish()
        return
Example #3
0
    def post(self):
        __eatery_id = self.get_argument("__eatery_id")
        try:
            limit = int(self.get_argument("limit"))
        except Exception as e:
            print e
            limit = 10

        try:
            skip = int(self.get_argument("skip"))
        except Exception as e:
            print e
            skip = 0

        result = list()

        if not users_reviews_collection.find_one({"__eatery_id": __eatery_id}):
            self.write({
                "error": True,
                "success": False,
                "messege": "No reviews are present",
            })
            self.finish()
            return

        for review in users_reviews_collection.find(
            {
                "__eatery_id": __eatery_id
            }, {
                "_id": False,
                "utc": False
            }).sort("epoch", -1).skip(skip).limit(limit):
            result.append(review)

        self.write({
            "error": False,
            "success": True,
            "result": result,
        })
        self.finish()
        return