def create_lending(): data = request.get_json() or {} error = Lending.check_data(data=data, new=True) if 'user_id' in data and data['user_id'] is not None and \ User.query.get(data['user_id']) is None: error = 'usuário não existe' if 'thirdparty_id' in data and data['thirdparty_id'] is not None and \ Thirdparty.query.get(data['thirdparty_id']) is None: error = 'terceiro não existe' if 'item_id' in data and data['item_id'] is not None: item = Item.query.get(data['item_id']) if item is None: error = 'item não existe' if not item.available: error = 'item não está disponível' if error: return bad_request(error) lending = Lending() lending.from_dict(data) try: db.session.add(lending) db.session.commit() except Exception: return internal_server() return jsonify(lending.to_dict()), 201
def update_reservation(id: int): reservation = Reservation.query.filter_by(id=id).first() if reservation is None: return not_found('reserva não encontrada') data = request.get_json() or {} error = Reservation.check_data(data=data) if 'user_id' in data and data['user_id'] is not None and \ User.query.get(data['user_id']) is None: error = 'usuário não existe' if 'thirdparty_id' in data and data['thirdparty_id'] is not None and \ Thirdparty.query.get(data['thirdparty_id']) is None: error = 'terceiro não existe' if Reservation.query.filter( Reservation.date_start >= data['date_start']).filter( Reservation.date_start <= data['date_end']).all( ) or Reservation.query.filter( Reservation.date_end >= data['date_start']).filter( Reservation.date_end <= data['date_end']).all(): error = 'já existe um evento nesse período' if error: return bad_request(error) reservation.from_dict(data) try: db.session.commit() except Exception: return internal_server() return jsonify(reservation.to_dict())
def create_reservation(): data = request.get_json() or {} error = Reservation.check_data(data=data, new=True) if 'user_id' in data and data['user_id'] is not None and \ User.query.get(data['user_id']) is None: error = 'usuário não existe' if 'thirdparty_id' in data and data['thirdparty_id'] is not None and \ Thirdparty.query.get(data['thirdparty_id']) is None: error = 'terceiro não existe' if Reservation.query.filter( Reservation.date_start >= data['date_start']).filter( Reservation.date_start <= data['date_end']).all( ) or Reservation.query.filter( Reservation.date_end >= data['date_start']).filter( Reservation.date_end <= data['date_end']).all(): error = 'já existe um evento nesse período' if error: return bad_request(error) reservation = Reservation() reservation.from_dict(data) try: db.session.add(reservation) db.session.commit() except Exception: return internal_server() return jsonify(reservation.to_dict()), 201
def update_lending(id: int): lending = Lending.query.filter_by(id=id).first() if lending is None: return not_found('empréstimo não encontrado') data = request.get_json() or {} error = Lending.check_data(data=data) if 'user_id' in data and data['user_id'] is not None and \ User.query.get(data['user_id']) is None: error = 'usuário não existe' if 'thirdparty_id' in data and data['thirdparty_id'] is not None and \ Thirdparty.query.get(data['thirdparty_id']) is None: error = 'terceiro não existe' if 'item_id' in data and data['item_id'] != lending.item_id and \ data['item_id'] is not None: item = Item.query.get(data['item_id']) if item is None: error = 'item não existe' if not item.available: error = 'item não está disponível' else: item.available = False if error: return bad_request(error) lending.from_dict(data) try: db.session.commit() except Exception: return internal_server() return jsonify(lending.to_dict())
def update_item(id: int): item = Item.query.filter_by(id=id).first() if item is None: return not_found('item não encontrado') data = request.get_json() or {} error = Item.check_data(data=data) if 'registry' in data and data['registry'] is not None \ and data['registry'] != item.registry and \ Item.query.filter_by(registry=data['registry']).first() is not None: error = 'tombo já existe' if 'category_id' in data and data['category_id'] is not None and \ Category.query.get(data['category_id']) is None: error = 'category_id não existe' if error: return bad_request(error) item.from_dict(data) try: db.session.commit() except Exception: return internal_server() return jsonify(item.to_dict())
def delete_reservation(id: int): reservation = Reservation.query.filter_by(id=id).first() if reservation is None: return not_found('reserva não encontrada') try: db.session.delete(reservation) db.session.commit() except Exception: return internal_server() return '', 204
def delete_thirdparty(id: int): thirdparty = Thirdparty.query.filter_by(id=id).first() if thirdparty is None: return not_found('terceiro não encontrado') try: db.session.delete(thirdparty) db.session.commit() except Exception: return internal_server() return '', 204
def delete_category(id: int): category = Category.query.filter_by(id=id).first() if category is None: return not_found('categoria não encontrada') try: db.session.delete(category) db.session.commit() except Exception: return internal_server() return '', 204
def delete_item(id: int): item = Item.query.filter_by(id=id).first() if item is None: return not_found('item não encontrado') try: db.session.delete(item) db.session.commit() except Exception: return internal_server() return '', 204
def delete_user(id): user = User.query.filter_by(id=id).first() if user is None: return not_found('usuário não encontrado') try: db.session.delete(user) db.session.commit() except Exception: return internal_server() return '', 204
def delete_lending(id: int): lending = Lending.query.filter_by(id=id).first() if lending is None: return not_found('empréstimo não encontrado') try: db.session.delete(lending) db.session.commit() except Exception: return internal_server() return '', 204
def create_thirdparty(): data = request.get_json() or {} error = Thirdparty.check_data(data=data, new=True) if 'email' in data and data['email'] is not None and \ Thirdparty.query.filter_by(email=data['email']).first(): error = 'email já existe' if error: return bad_request(error) thirdparty = Thirdparty() thirdparty.from_dict(data) try: db.session.add(thirdparty) db.session.commit() except Exception: return internal_server() return jsonify(thirdparty.to_dict()), 201
def update_user(id): user = User.query.filter_by(id=id).first() if user is None: return not_found('usuário não encontrado') data = request.get_json() or {} error = User.check_data(data) if 'email' in data and data['email'] != user.email and \ User.query.filter_by(email=data['email']).first() is not None: error = 'email já existe' if error: return bad_request(error) user.from_dict(data) try: db.session.commit() except Exception: return internal_server() return jsonify(user.to_dict())
def create_user(): data = request.get_json() or {} error = User.check_data(data=data, new=True) if 'email' in data and \ User.query.filter_by(email=data['email']).first() is not None: error = 'email já existe' if error: return bad_request(error) user = User() user.from_dict(data, new_user=True) try: db.session.add(user) db.session.commit() except Exception: return internal_server() return jsonify(user.to_dict()), 201
def create_category(): data = request.get_json() or {} error = Category.check_data(data=data, new=True) if 'name' in data \ and Category.query.filter_by(name=data['name']).first() is not None: error = 'nome já existe' if error: return bad_request(error) category = Category() category.from_dict(data) try: db.session.add(category) db.session.commit() except Exception: return internal_server() return jsonify(category.to_dict()), 201
def update_thirdparty(id: int): thirdparty = Thirdparty.query.filter_by(id=id).first() if thirdparty is None: return not_found('terceiro não encontrado') data = request.get_json() or {} error = Thirdparty.check_data(data=data) if 'email' in data and data['email'] != thirdparty.email and \ Thirdparty.query.filter_by(email=data['email']).first() is not None: error = 'email já existe' if error: return bad_request(error) thirdparty.from_dict(data) try: db.session.commit() except Exception: return internal_server() return jsonify(thirdparty.to_dict())
def update_category(id: int): category = Category.query.filter_by(id=id).first() if category is None: return not_found('categoria não encontrada') data = request.get_json() or {} error = Category.check_data(data=data) if 'name' in data and data['name'] != category.name and \ Category.query.filter_by(name=data['name']).first() is not None: error = 'nome já existe' if error: return bad_request(error) category.from_dict(data) try: db.session.commit() except Exception: return internal_server() return jsonify(category.to_dict())
def create_item(): data = request.get_json() or {} error = Item.check_data(data=data, new=True) if 'registry' in data and data['registry'] is not None and \ Item.query.filter_by(registry=data['registry']).first(): error = 'tombo já existe' if 'category_id' in data and data['category_id'] is not None and \ Category.query.get(data['category_id']) is None: error = 'categoria não existe' if error: return bad_request(error) item = Item() item.from_dict(data) try: db.session.add(item) db.session.commit() except Exception: return internal_server() return jsonify(item.to_dict()), 201