예제 #1
0
def add_product():
    new_product = Product()
    new_product.name = request.form['name']
    new_product.description = request.form['description']
    db.session.add(new_product)
    db.session.commit()
    return product_schema.jsonify(new_product)
예제 #2
0
def read_product(id):
    product = db.session.query(Product).get(
        id)  # SQLAlchemy request => 'SELECT * FROM products'
    if product is None:
        abort(404)
    else:
        return product_schema.jsonify(product)
예제 #3
0
def update_product():
    body = request.get_json()
    product = db.session.query(Product).get(body['id'])
    product.name = body['name']
    product.description = body['description']
    db.session.commit()
    return product_schema.jsonify(product)
예제 #4
0
def update_product():
    new_product = Product()
    new_product.name = request.form['name']
    new_product.description = request.form['description']
    db.session.query(Product).filter_by(name=new_product.name).update({"description" : new_product.description})
    db.session.commit()
    return product_schema.jsonify(new_product)
예제 #5
0
def post_products():
    product_name = request.get_json()["name"]
    new_product = Product()
    new_product.name = product_name
    db.session.add(new_product)
    db.session.commit()
    return product_schema.jsonify(new_product), 201
예제 #6
0
def product_html(id):
    product = db.session.query(Product).get(id)
    return render_template('product.html', product=product)
    print(id, flush=True)
    print(product, flush=True)
    if product != None:
        return product_schema.jsonify(product), 200
    return '', 404
예제 #7
0
def product_by_id(id):
    if request.method == "GET":
        product = db.session.query(Product).get(id)
        result = product_schema.jsonify(product)
    elif request.method == 'PATCH':
        product = db.session.query(Product).get(id)
        product.name = request.json['name']
        product.description = request.json['description']
        db.session.commit()
        result = product_schema.jsonify(product)
    else:
        product = db.session.query(Product).get(id)
        db.session.delete(product)
        db.session.commit()
        result = product_schema.jsonify(product)

    return render_template('product_detail.html', product=product)
예제 #8
0
def create_product():
    body = request.get_json()
    # new_product = product_schema.load(body)
    product = Product(name=body['name'],
                      description=body.get('description', ''))
    db.session.add(product)
    db.session.commit()
    return product_schema.jsonify(product), 201
예제 #9
0
def product(product_id):
    product = db.session.query(Product).get(product_id)
    if product == None:
        return '{ "message": "not found"}', 404

    if request.method == 'GET':
        return product_schema.jsonify(product), 200
    elif request.method == 'DELETE':
        db.session.delete(product)
        db.session.commit()
        return '', 204
    elif request.method == 'PATCH':
        data = request.get_json()
        if data['name'] == '':
            return '', 422
        product.name = data['name']
        db.session.commit()
        return product_schema.jsonify(product), 201
예제 #10
0
def create_product():
    if "name" in request.get_json():
        name = request.get_json()["name"]
        product = Product()
        product.name = name
        db.session.add(product)
        db.session.commit()
        return (product_schema.jsonify(product), 201)
    else:
        return ('', 400)
예제 #11
0
    def patch(self, id):
        body = request.get_json()
        name = body.get('name')
        if name is None:
            abort(400)

        product = Product.query.get(id)
        product.name = name
        db.session.commit()
        return product_schema.jsonify(product)
예제 #12
0
def get_del_product(product_id):
    product = db.session.query(Product).get(product_id)
    if product:
        if request.method == 'GET':
            return product_schema.jsonify(product), 200
        else:
            db.session.delete(product)
            db.session.commit()
            return '', 204
    return 'Product Not Found', 404
예제 #13
0
def product_by_id(id):
    if request.method == 'GET':
        product_by_id = db.session.query(Product).get(id)
        #print(product_by_id)
        return render_template('product.html', product=product_by_id)
    elif request.method == 'DELETE':
        product_by_id = db.session.query(Product).get(id)
        db.session.delete(product_by_id)
        db.session.commit()
        return product_schema.jsonify(product_by_id)
    else:
        product_by_id = db.session.query(Product).get(id)
        dic = request.get_json()
        if "name" in dic:
            product_by_id.name = request.json["name"]
        if "description" in dic:
            product_by_id.description = request.json["description"]
        db.session.commit()
        return product_schema.jsonify(product_by_id)
예제 #14
0
def create_product():
    body = request.get_json()
    if not "name" in body or body["name"] is None:
        abort(422)
    new_product = Product()
    new_product.name = body["name"]
    db.session.add(new_product)
    db.session.commit()
    response = make_response(product_schema.jsonify(new_product), 201)
    return response
예제 #15
0
def create_products():

    name = request.json['name']
    description = request.json['description']

    product = product(name=name, description=description)

    db.session.add(product)
    db.session.commit()

    return product_schema.jsonify(product), 201
예제 #16
0
def products():
    if request.method == 'GET':
        products = db.session.query(Product).all()
        return render_template('home.html', products=products)
    else:
        new_product = Product()
        new_product.name = request.json["name"]
        new_product.description = request.json["description"]
        db.session.add(new_product)
        db.session.commit()
        return product_schema.jsonify(new_product)
예제 #17
0
파일: wsgi.py 프로젝트: JLucL/flask
def upd_product(prod_id):
    produit = db.session.query(Product).get(prod_id)
    rf_name = request.form['name']
    #    text = Product(text=request.form['text'])
    #    print(f"name = {name}, text = {text}")
    produit.name = rf_name
    #    Product.text = text
    #    return product_schema.jsonify(product)
    #product = db.session.add(name)
    db.session.commit()
    return product_schema.jsonify(produit)
예제 #18
0
def post_products():
    try:
        payload = json.loads(request.data)
    except ValueError:
        return jsonify({"error": "Bad payload received"}), 422
    if 'name' not in payload or 'description' not in payload:
        return jsonify({"error": "Bad payload received"}), 422
    product = Product(name=payload['name'], description=payload['description'])
    db.session.add(product)
    db.session.flush()
    db.session.commit()
    return product_schema.jsonify(product), 201
예제 #19
0
def products():
    if request.method == 'GET':
        products = db.session.query(
            Product).all()  # SQLAlchemy request => 'SELECT * FROM products'
        return products_schema.jsonify(products)

    product = Product()
    newprod = request.get_json()
    product.name = newprod['name']
    db.session.add(product)
    db.session.commit()
    return product_schema.jsonify(product), 201
예제 #20
0
def products():
    if request.method == "GET":
        products = db.session.query(Product).all() # SQLAlchemy request => 'SELECT * FROM products'
        result = products_schema.jsonify(products)
    else:
        product_name = request.json['name']
        product_desc = request.json['description']
        new_product = Product(product_name, product_desc)
        db.session.add(new_product)
        db.session.commit()
        result = product_schema.jsonify(new_product)
    return result
예제 #21
0
def update_product(product_id: int):
    product = db.session.query(Product).get_or_404(
        product_id)  # SQLAlchemy request => 'SELECT * FROM products'

    try:
        for attr in ['name', 'description']:
            setattr(product, attr, request.get_json()[attr])
    except KeyError:
        pass

    db.session.commit()

    return product_schema.jsonify(product)
예제 #22
0
def product(id):
    if request.method=="GET":
        product=db.session.query(Product).get(id)
        print(product)
        return product_schema.jsonify(product)
    elif request.method=="DELETE":
        try:
            db.session.query(Product).\
                filter(Product.id == id).delete()
            db.session.commit()
            return jsonify({"status":"deleted","id":id})
        except Exeption as e:
            return jsonify({"status":"error","description":str(e)})
예제 #23
0
def create_product():
    requested_object = request.get_json()
    new_object = Product()
    try:
        for attr in ['name', 'description']:
            setattr(new_object, attr, requested_object[attr])
    except KeyError:
        return '', 400

    db.session.add(new_object)
    db.session.commit()

    return product_schema.jsonify(new_object)
예제 #24
0
def products():
    if request.method=="GET":
        products = db.session.query(Product).all() # SQLAlchemy request => 'SELECT * FROM products'
        return products_schema.jsonify(products)
    if request.method=="POST":
        json=request.json
        prod = Product()
        prod.name = json["name"]
        prod.description = json["description"]
        db.session.add(prod)
        db.session.commit()
        #insert product
        return product_schema.jsonify(prod)
예제 #25
0
def create_product():
    #get json body
    json = request.get_json()
    #validate parameters in json
    if type(json) is dict:
        new_product = process_create_poduct(json)
        return product_schema.jsonify(new_product), 201
    elif type(json) is list:
        #bulk create
        created_products = []
        for item in json:
            created_products.append(process_create_poduct(item))
        return products_schema.jsonify(created_products), 201
    else:
        abort(422)
예제 #26
0
def product(id):
    product = db.session.query(Product)
    if request.method == 'GET':
        return product_schema.jsonify(product.get(id))

    if request.method == 'DELETE':
        db.session.delete(product.get(id))
        db.session.commit()
        return make_response("Deleted",204)

    if request.method == 'PATCH':
        content = request.get_json()
        item = product.get(id)
        print(f"Item: [{item}] type is [{type(item)}]", file=sys.stderr)
        print(f"Content: [{content}] type is [{type(content)}]", file=sys.stderr)
        item.name = content["name"]
        db.session.commit()
        return make_response("Updated",204)
예제 #27
0
def products_id(id):
    if request.method == 'GET':
        products_id = db.session.query(Product).get(id)
        if products_id:
            return product_schema.jsonify(products_id)
        else:
            return "Id not found", 404
    elif request.method == 'DELETE':
        products_id = db.session.query(Product).get(id)
        db.session.delete(products_id)
        db.session.commit()
        return f'product with id: {id} successflully deleted', 200
    elif request.method == 'PATCH':
        products_id = db.session.query(Product).get(id)
        products_id.name = request.get_json()['name']
        db.session.commit()
        return f'product with id: {id} successflully updated', 200
    else:
        return "Read the API documentation", 403
예제 #28
0
def create_product():
    product = Product()
    body = request.get_json()

    # Test en version condensee
    # filtered_body = { key, value for key, value in body if key in ["name","description"]}
    #product = Product(**filtered_body)

    name = body.get("name")  # Test dans le body que name existe
    if name is not None:
        product.name = name

    description = body.get(
        "description")  # Test dans le body que la description existe
    if description is not None:
        product.description = description

    db.session.add(product)
    db.session.commit()
    return product_schema.jsonify(product), 201
예제 #29
0
def create_one_product():
    product = Product()
    product.name = "Ajout via API create_one_product"
    db.session.add(product)
    db.session.commit()
    ##########################################################
    #TODO# Comment tester si le commit est OK ?
    #    failed=False
    #    try:
    #       db_session.commit()
    #    except Exception as e:
    #       #log your exception in the way you want -> log to file, log as error with default logging, send by email. It's upon you
    #       db_session.rollback()
    #       db_session.flush() # for resetting non-commited .add()
    #       failed=True
    #some use of failed var, specific for your case if you need it
    # Est-il possible de récupérer le code retour du commit ?
    ##########################################################
    if product is None:
        abort(422)
    return product_schema.jsonify(product), 201
예제 #30
0
def get_products(id):
    if request.method == 'GET':
        products = db.session.query(Product).get(
            id)  # SQLAlchemy request => 'SELECT * FROM products'
        return product_schema.jsonify(products)
    elif request.method == 'DELETE':
        db.session.query(Product).filter(Product.id == id).delete(
            synchronize_session=False)
        db.session.commit()
        return '', 204
    elif request.method == 'PATCH':
        if request.get_json() is None:
            return jsonify(''), 422
        my_json = request.get_json()
        db.session.query(Product).filter(Product.id == my_json['id']).update(
            {
                Product.name: my_json['name'],
                Product.description: my_json['description']
            },
            synchronize_session=False)
        db.session.commit()
        return jsonify(''), 204