Esempio n. 1
0
    def put(self, id_product):
        product_data = Product.attribute.parse_args()
        products = ProductModel(**product_data)

        product = ProductModel.find_product(id_product)
        id_provider = ProductModel.find_id_provider(products.id_provider)

        if not id_provider:
            return {
                "message":
                "The id '{}' does not found.".format(products.id_provider)
            }, 404

        if not product:
            return {
                "message": "Product id '{}' does not found.".format(id_product)
            }, 404

        product_found = ProductModel.find_product(id_product)
        if product_found:
            product_found.update_product(**product_data)
            product_found.save_product()
            return product_found.json(), 200
        product = ProductModel(id_product, **product_data)

        try:
            product.save_product()
        except:
            return {'message': 'Internal error'}, 500
        return product.json(), 201
Esempio n. 2
0
 def delete(self, instanceid):
     try:
         data = Product.parser.parse_args()
         if data['name'] is None:
             delete_product = ProductModel(instanceid, DELETE_RESPONSE)
         else:
             delete_product = ProductModel(instanceid, DELETE_RESPONSE,
                                           data['name'])
         if DELETE_RESPONSE == 'ACCEPTED':
             asyncio.run_coroutine_threadsafe(delete_product.delay_time(),
                                              event_loop)
         return {'message': delete_product.json()}, 200
     except Exception as e:
         return {"message": str(e)}, 500
Esempio n. 3
0
 def put(self, instanceid):
     try:
         data = Product.parser.parse_args()
         if data['name'] is None:
             update_product = ProductModel(instanceid, UPDATE_RESPONSE)
         else:
             update_product = ProductModel(instanceid, UPDATE_RESPONSE,
                                           data['name'])
         if UPDATE_RESPONSE == 'ACCEPTED':
             asyncio.run_coroutine_threadsafe(update_product.delay_time(),
                                              event_loop)
         return {'message': update_product.json()}, 200
     except:
         return {"message": "An error occurred when updating product."}, 500
Esempio n. 4
0
def create_database():
    if not os.path.exists('./database.db'):
        print("Create a database\n")
        database.create_all()
        sleep(0.1)

    file_name = "products_79936.json"
    if not os.path.exists(file_name):
        # Download of mock database
        Process.run(
            'curl https://servicespub.prod.api.aws.grupokabum.com.br/descricao/v1/descricao/produto/79936 >> %s'
            % file_name)

    ## Save database ##
    # Read $filename
    config_file = './%s' % file_name
    config_helper = ConfigHelper(config_file)
    config = config_helper.load_config()

    # Read only products of config
    config = config['familia']['produtos']
    for data in config:
        product = ProductModel(**data)
        try:
            # Save products in database
            product.save_product()
            sleep(0.01)
        except:
            print({"message": "An error ocurred trying to create product."},
                  500)  # Internal Server Error
Esempio n. 5
0
    def post(self):
        
        product = Product.parser.parse_args()

        if not product['name']:
            return {
                'status': False,
                'message': 'Product name must not be empty.',
                'data': None
            }

        if ProductModel.find_by_name(product['name']):
            return {
                'status': False,
                'message':"A product with name '{}' already exists.".format(product['name']),
                'data': None
            }
        
        product = ProductModel(**product)
    
        try:
            product.save_to_db()
        except:
            return {
                'status': False,
                'message': 'An error occurred while creating the product.',
                'data': None
            }, 500
        
        return {
            'status': True,
            'message': 'Success',
            'data': product.json()
        },201
Esempio n. 6
0
 def put(self, name):
     data = Product.parser.parse_args()
     product = ProductModel.find_by_name(name)
     if product is None:
         product = ProductModel(name, **data)
     else:
         product.price = data['price']
         product.save_to_db()
     return product.json()
Esempio n. 7
0
    def mutate(self, info, code, name, color, price, quantity):
        product = ProductModel(code=code,
                               name=name,
                               color=color,
                               price=price,
                               quantity=quantity)
        product.save()

        return CreateProduct(product=product)
Esempio n. 8
0
    def mutate(root, info, company_id, product_data):
        company = CompanyModel.find_by_id(company_id)
        if not company:
            raise Exception("Company doesn't exist!")

        product = ProductModel(**product_data, company=company_id)
        product.save()

        return NewProduct(product=product)
Esempio n. 9
0
 def put(self, codigo):
     data = Product.attribute.parse_args()
     product_find = ProductModel.find_product(codigo)
     if product_find:
         product_find.update_product(**data)
         product_find.save_product()
         return product_find.json(), 200
     product = ProductModel(codigo, **data)
     product.save_product()
     return product.json(), 201
Esempio n. 10
0
    def post(self):
        data = Product.parser.parse_args()

        product = ProductModel(**data)

        try:
            product.save_to_db()
        except:
            return {"message": "An error occurred creating the operation"}, 500

        return product.json(), 201
Esempio n. 11
0
    def post(self):
        data = parser.parse_args()

        product = ProductModel(data['name'], data['description'], data['price'], data['parent_id'])

        try:
            product.save()
        except Exception as e:
            return {'message': 'An error occurred inserting into db: {}'.format(e)}, 500

        return product.json(), 201
Esempio n. 12
0
    def put(self):
        data = Product.parser.parse_args()

        product = ProductModel(**data)

        try:
            product.update_to_db()
        except:
            return {"message": "An error occurred updating the operation"}, 500

        return {"message": "update OK"}, 200
    def test_save_product(self):
        products = len(ProductModel.list())

        new_product = ProductModel()
        new_product.name = "Produto 02"
        new_product.provider = ProviderModel.get_by_cnpj("04790618000153")
        new_product.quantity = 100
        new_product.price = 10.0
        new_product.available = True
        new_product.save()

        assert products + 1 == len(ProductModel.list())
Esempio n. 14
0
    def post(self):
        try:
            data = request.get_json()
            item = ProductModel()

            for parameter in data:
                setattr(item, parameter, data[parameter])
            item.save()

            return "success", 201
        except:
            return "error", 401
Esempio n. 15
0
def first_product():
    if ProviderModel.get_by_cnpj("04790618000153") == None:
        first_provider()
        return
    new_product = ProductModel()
    new_product.name = "Produto 01"
    new_product.provider = ProviderModel.get_by_cnpj("04790618000153")
    new_product.quantity = 100
    new_product.price = 10.0
    new_product.available = True
    new_product.save()
    return
Esempio n. 16
0
 def put(self, codigo):
     dados = Product.argumentos.parse_args()
     product_object = ProductModel(codigo, **dados)
     new_product = product_object.json()
     prod = Product.find_product(codigo)
     if prod:
         prod.update(new_product)
         return new_product, 200
     try:
       products.append(new_product)
     except:
       return {'messege': 'An internal error ocurred trying to save produto'}, 500  # An server error
     return new_product, 200
Esempio n. 17
0
    def post(self, name):
        data = Product.parser.parse_args()
        product = ProductModel.find_by_name(name)

        if product:
            return {
                "message": "product with name '{}' already axists".format(name)
            }
        product = ProductModel(**data)
        print(product.json())
        product.save_to_db()

        return {"message": "Product has been saved"}, 200
Esempio n. 18
0
	def post(self, name):
		if ProductModel.find_by_name(name):
			return {'message': "A product with name '{}' already exists.".format(name)}, 400

		data = Product.parser.parse_args()
		product = ProductModel(name, **data)

		try:
			product.save_to_db()
		except:
			return {'message': 'An error occured inserting the product'}, 500

		return product.json(), 201
Esempio n. 19
0
    def post(self, codigo):

        if Product.find_product(codigo):
            return {"message":"Codigo '{}' alredy existis." .format(codigo)}, 400 # Bad Request

        dados = Product.argumentos.parse_args()
        product_object = ProductModel(codigo, **dados)
        new_product = product_object.json()

        try:
            products.append(new_product)
        except:
            return {'messege': 'An internal error ocurred trying to save produto'}, 500 # An server error
        return new_product, 200
Esempio n. 20
0
 def post(self, codigo):
     if ProductModel.find_product(codigo):
         return {
             "message": "Code '{}', product already exists.".format(codigo)
         }, 400  # Bad Request
     data = Product.attribute.parse_args()
     product = ProductModel(codigo, **data)
     try:
         product.save_product()
     except:
         return {
             "message": "An error ocurred trying to create product."
         }, 500  # Internal Server Error
     return product.json(), 201
Esempio n. 21
0
    def post(self):

        product_data = Product.attribute.parse_args()
        product = ProductModel(**product_data)

        if not ProviderModel.find_by_id_provider(product.id_provider):
            return {
                'message': 'The product must be associated with a valid id. '
            }, 400

        try:
            product.save_product()
        except:
            return {'message': 'Internal error'}, 500
        return product.json(), 200
Esempio n. 22
0
 def put(self, product_id):
     args = Product.parser.parse_args()
     product_found = ProductModel.find_product(product_id)
     if product_found:
         product_found.update_product(**args)
         product_found.save_product()
         return product_found.json(), 200
     product = ProductModel(product_id, **args)
     try:
         product.save_product()
     except:
         return {
             'message': 'Oops, we have some problem here, try again.'
         }, 500  # internal error
     return product.json(), 201
Esempio n. 23
0
    def post(self):
        recv_data=Product.parser.parse_args()
        print(type(recv_data))

        if ProductModel.find_by_name(recv_data['name']):
            return {"message":"A product with the name {} already exists..".format(recv_data['name'])},400
        
        product=ProductModel(recv_data['name'], recv_data['description'])

        try:
            product.save_to_db()
        except:
            return {"message":"An Error occured while inserting the data!!"},500

        return product.json(),201
Esempio n. 24
0
def add_product(db):
    products = []
    for i in range(random.randint(1, 10)):
        product = ProductModel(name=generate_fullname(),
                               photo=generate_image_url(),
                               intro=generate_text(),
                               on_sale=random.randint(0, 1),
                               category_id=random.randint(1, 20),
                               price=random.randint(1, 500),
                               market_price=random.randint(1, 500),
                               status=random.randint(0, 1))
        products.append(product)

    db.session.bulk_save_objects(products)
    db.session.commit()
Esempio n. 25
0
    def post(self, productId):
        if ProductModel.find_product(productId):
            return {
                "message": "Product id '{}' already exists.".format(productId)
            }, 400

        data = Product.arguments.parse_args()
        productObject = ProductModel(productId, **data)
        try:
            productObject.save_product()
        except:
            return {
                'message':
                'An internal error occurred while trying to save the data.'
            }, 500
        return productObject.json()
Esempio n. 26
0
    def post(self, product_id):
        if ProductModel.find_product(product_id):
            return {
                'message':
                'Product ID: {}, already exists.'.format(product_id.upper())
            }, 400  # bad request

        args = Product.parser.parse_args()
        new_product = ProductModel(product_id, **args)
        try:
            new_product.save_product()
        except:
            return {
                'message': 'Oops, we have some problem here, try again.'
            }, 500  # internal error
        return new_product.json()
Esempio n. 27
0
	def put(self, name):
		data = Product.parser.parse_args()

		product = ProductModel.find_by_name(name)

		if product is None:
			product = ProductModel(name, **data)
		else:
			product.desc_short = data['desc_short']
			product.desc_long = data['desc_long']
			product.pdf = data['pdf']
			product.price_excl = data['price_excl']
			product.price_incl = data['price_incl']

		product.save_to_db()
		return product.json()
Esempio n. 28
0
    def post(self):
        request_data = _product_parse.parse_args()
        #print("sadad: {}".format(request_data))
        #if ProductModel.find_by_nameproduct(request_data['nombre_producto']):
        #    return {"message": "el producto '{}' ya existe".format(request_data['nombre_producto'])}, 400

        psearch_if = [g.json() for g in ProductModel.find_all()]
        product = ProductModel.find_by_nameproduct(
            request_data['nombre_producto'])
        if product:
            #req = ProductModel.fin_by_pricesalid(request_data['nombre_producto'], request_data['price_salida'])

            aaa = product.json()['cantidad']
            bbb = product.json()['unidad']
            iddddd = product.json()['id']
            print("resss: {}".format(iddddd))
            product.cantidad = request_data['cantidad'] + aaa
            product.unidad = request_data['unidad'] + bbb

            #tipo_medicamento = ["analgecicos", "antiacidos", "antiulcerosos", "antialergicos", "laxantes", "antiinecciosos", "antiinflamatorios", "Antipiréticos", "Antitusivos", "mucolíticos"]

            #------if request_data[tipo_medicamento] = tipo_medicamento["analgesico"]:
            #------    product.unidad = request_data['cantidad']*200

            #stock = StockModel(request_data["cantidad"], request_data["detalle_unidad"], request_data['price_salida'], product.json()['cantidad'])

        else:
            product = ProductModel(**request_data)

        #a = "entrada de productos a la botica, mas abajo se detallan el nombre del producto y la cantidad que esta ingresando"
        #print(request_data['entrada_id'])
        #entrada = EntradasModel(a)
        #intentos = 0
        #while itentos < 10:
        #    d = request_data['entrada_id']
        #    entrada.save_to_db()s

        try:
            #stock.save_to_db()
            product.save_to_db()
            #salida.save_to_db()
        except:
            return {
                'message': 'ah ocurrido un error al insertar el producto'
            }, 500

        return product.json(), 201
Esempio n. 29
0
    def post(self, code):

        if ProductModel.find_by_code(code):
            return {
                'message':
                "A product with code '{}' already exists.".format(code)
            }, 400

        data = Product.parser.parse_args()

        product = ProductModel(code, data["value"])

        try:
            product.save_to_db()
        except:
            return {"message": "An error ocorrued inserting the item."}, 500

        return product.json(), 201
Esempio n. 30
0
	def post(self):
		"""
		Agregar un nuevo producto a la base de datos. Permitir solo para vendedores.
		"""
		if current_identity.user_type != user_types['vendor']:
			return {"message": "Se requiere ser vendedor para agregar productos."}, 401

		data = ProductList.parser.parse_args()

		if not CategoryModel.find_by_id(data['category_id']):
			return {"message": f"La categoría con ID {data['category_id']!r} no ha sido encontrada."}, 404

		if imgurlRegex.match(data['image']) is None:
			return {"message": "La imagen debe ser un enlace de una imagen."}, 400

		new_product = ProductModel(current_identity.id, **data)
		new_product.save_to_db()

		return new_product.json(), 201