Beispiel #1
0
    def fetch_product_detail(product_id):

        query = Product.query.join(
            Category, Product.category_id == Category.id
        ).with_entities(
            Product.id,
            Product.reference,
            Product.name,
            Product.category_id,
            Category.name.label('category_name'),
            Product.short_description,
            Product.long_description,
            Product.price,
            Product.tags,
            Product.image_link,
            Product.active
        ).filter(
            Product.id == product_id,
            Product.active == 'Y'
        ).first()
        app.logger.info(query)

        if query is None:
            abort(404)

        product = Product.format([query])

        return jsonify({
            'success': True,
            'product': product
        })
Beispiel #2
0
    def create_product():
        # Create a new product
        # First retrieve the user in session
        user = get_user(request)
        user_id = user.id

        body = request.get_json()
        if body is None:
            abort(422)

        name = body.get('name', None)
        date_purchased = body.get('date_purchased', None)
        warranty_end_date = body.get('warranty_end_date', None)

        if not name or not date_purchased or not warranty_end_date:
            abort(422)

        try:
            product = Product(
                name=name,
                date_purchased=date_purchased,
                warranty_end_date=warranty_end_date,
                user_id=user_id)

            # Insert product into database
            product.insert()

            products = Product.query.filter(Product.user_id == user_id).all()
            formatted_products = [product.format() for product in products]
            paginated_products = paginate_products(request, formatted_products)

            if len(paginated_products) == 0:
                abort(404)

            return jsonify({
                'success': True,
                'products': paginated_products,
                'total_products': len(paginated_products)
            })

        except BaseException:
            abort(422)
Beispiel #3
0
    def fetch_products():

        selection = []
        query = Product.query.join(
            Category, Product.category_id == Category.id
        ).with_entities(
            Product.id,
            Product.reference,
            Product.name,
            Product.category_id,
            Category.name.label('category_name'),
            Product.short_description,
            Product.long_description,
            Product.price,
            Product.tags,
            Product.image_link,
            Product.active
        ).filter(
            Product.active == 'Y'
        ).order_by(
            Product.price
        ).all()

        selection = []

        selection = Product.format(query)

        current_products = paginate_products(request, selection)
        if len(current_products) == 0:
            abort(404)

        return jsonify({
            'success': True,
            'products': current_products,
            'total_products': len(
                Product.query.filter(Product.active == 'Y').all()
            )
        })