From a092d0887504b34257ab2f634bbe25b4cb4b50bc Mon Sep 17 00:00:00 2001 From: Benjamin Bertrand <benjamin.bertrand@esss.se> Date: Thu, 20 Jul 2017 12:57:50 +0200 Subject: [PATCH] Add API endpoing to update an item --- app/api/main.py | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/app/api/main.py b/app/api/main.py index 51a5289..b9c5197 100644 --- a/app/api/main.py +++ b/app/api/main.py @@ -86,6 +86,24 @@ def create_item(): return create_generic_model(Item, mandatory_field='serial_number') +@bp.route('/items/<item_id>', methods=['PATCH']) +@jwt_required +def patch_item(item_id): + data = request.get_json() + if data is None: + raise utils.InventoryError('Body should be a JSON object') + item = Item.query.get(item_id) + if item is None: + raise utils.InventoryError(f'Unknown item id: {item_id}', status_code=422) + item.name = data.get('name', item.name) + item.manufacturer = utils.convert_to_model(data.get('manufacturer', item.manufacturer), Manufacturer) + item.model = utils.convert_to_model(data.get('model', item.model), Model) + item.location = utils.convert_to_model(data.get('location', item.location), Location) + item.status = utils.convert_to_model(data.get('status', item.status), Status) + db.session.commit() + return jsonify(item.to_dict()) + + @bp.route('/manufacturers') @jwt_required def get_manufacturers(): -- GitLab