예제 #1
0
 def post(self):
     product_collection = request.get_json()
     if not product_collection:
         response = {'message': 'No input data provorder_ided'}
         return response, HttpStatus.bad_request_400.value
     #errors = product_schema.validate(product_collection)
     #if errors:
     #return errors, HttpStatus.bad_request_400.value
     product_name = product_collection['name']
     if not Product.is_name_unique(id=0, name=product_name):
         response = {'error': 'Product already exist'.format(product_name)}
         return response, HttpStatus.bad_request_400.value
     try:
         product_category_name = product_collection['product_category']
         category = ProductCategory.query.filter_by(
             name=product_category_name).first()
         if category is None:
             category = ProductCategory(name=product_category_name)
             db.session.add(category)
         product = Product(name=product_collection['name'],
                           price=product_collection['price'],
                           description=product_collection['description'],
                           product_category=category,
                           tags=product_collection['tags'])
         product.add(product)
         query = Product.query.get(product.id)
         dump_result = product_schema.dump(query)
         return dump_result, HttpStatus.created_201.value
     except SQLAlchemyError as e:
         db.session.rollback()
         response = {"error": str(e)}
         return response, HttpStatus.bad_request_400.value