Пример #1
0
def create_reviews(user, business):
    reviews = []

    review = Review.create(user.id, business, 1, 'This is not good.', tags=['hello', 'world'])
    reviews.append(review)

    review = Review.create(user.id, business, 1, 'This is also not good.', tags=['hello', 'example'])
    reviews.append(review)

    review = Review.create(user.id, business, 5, 'This is awesome.', tags=['awesome'])
    reviews.append(review)

    return reviews
Пример #2
0
    def test_reviews(self):
        review = Review.create(self.user.id, self.business, 1, 'This is a review', tags=['hello', 'world'])
        self.created_ids.append(review.id)

        review = Review.create(self.user.id, self.business, 5, 'This is a another review', tags=['hello', 'something'])
        self.created_ids.append(review.id)

        self.business = Business.get_by_id(self.business.id)
        self.assertTrue(self.business.rating == 3)
        self.assertTrue('hello' in self.business.tags)
        self.assertTrue('world' in self.business.tags)
        self.assertTrue('something' in self.business.tags)

        review.delete()
        self.business = Business.get_by_id(self.business.id)
        self.assertTrue(self.business.rating == 1)
        self.assertFalse('something' in self.business.tags)

        review = Review.create(self.user.id, self.business, 5, 'This is a another review', tags=['hello', 'something'])
        self.created_ids.append(review.id)
Пример #3
0
    def reviews_post(request):
        """
        creates new business review

        **authentication required with access_token**


        errors
        ======

        * status 400 - if failed to create business


        returns
        =======

        ::

            {
                "id": ""
            }
        """
        business_id = request.matchdict['business_id']
        business = Business.get_by_id(business_id)
        user = request.validated['user']
        text = request.validated['text']
        rating = request.validated['rating']
        tags = request.validated['tags']

        if tags:
            tags = tags.split(':')
        else:
            tags = []

        if business and user:
            review = Review.create(user.id, business, rating, text, tags)
            response_body = {
                'id': review.id,
            }

            # kill cache
            cache_key = 'business:{}*'.format(business.id)
            redis_cache.delete_pattern(cache_key)
        else:
            logger.debug('Failed to create review for business:{}'.format(business_id))
            request.response.status_int = 400
            response_body = {
                'status': 'error',
                'message': 'failed to create review for business'
            }

        request.response.body = json.dumps(response_body, cls=ComplexEncoder)
        request.response.content_type = 'application/json'
        return request.response