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 })
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)
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() ) })