Ejemplo n.º 1
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
Ejemplo n.º 2
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
Ejemplo n.º 3
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
Ejemplo n.º 4
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
Ejemplo n.º 5
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
Ejemplo n.º 6
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
Ejemplo n.º 7
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()
Ejemplo n.º 8
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()