Beispiel #1
0
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
Beispiel #4
0
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
Beispiel #8
0
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
Beispiel #11
0
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
Beispiel #15
0
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())
Beispiel #17
0
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