Ejemplo n.º 1
0
def close_trip(trip_id):
    trip = get_trip_by_id(trip_id)
    if trip is None:
        raise TripNotFoundException(trip_id)
    if trip.closed:
        return
    trip.close()
    save_changes(trip)
Ejemplo n.º 2
0
def get_expenses(trip_id, user_id):
    if not trip_exists(trip_id):
        raise TripNotFoundException(trip_id)

    if not get_user_by_id(user_id):
        raise UserNotFoundException(user_id)

    return Expense.query.filter_by(trip_id=trip_id).filter_by(
        user_id=user_id).all()
Ejemplo n.º 3
0
def create_expense(expense):
    if not trip_exists(expense.trip_id):
        raise TripNotFoundException(expense.trip_id)

    if not get_user_by_id(expense.user_id):
        raise UserNotFoundException(expense.user_id)

    save_changes(expense)
    return expense
Ejemplo n.º 4
0
def create_step(step):
    if not trip_exists(step.trip_id):
        raise TripNotFoundException(step.trip_id)

    if not Step.name_min_length <= len(step.name) <= Step.name_max_length:
        raise StringLengthOutOfRangeException('Name', Step.name_min_length,
                                              Step.name_max_length)

    save_changes(step)
    return step
Ejemplo n.º 5
0
def invite_to_trip(trip_id, user_to_invite_email):
    trip = get_trip_by_id(trip_id)
    if trip is None:
        raise TripNotFoundException(trip_id)
    user = get_user_by_email(user_to_invite_email)
    if user is None:
        raise UserEmailNotFoundException(user_to_invite_email)

    trip.users_trips.append(user)
    save_changes(trip)
    return trip.users_trips
Ejemplo n.º 6
0
def update_trip_cover_picture(file_id, trip_id):
    trip: Trip = get_trip_by_id(trip_id)
    if not trip:
        raise TripNotFoundException(trip_id)

    file: File = get_file(file_id)
    if not file:
        raise FileNotFoundException()

    if trip.picture_path is not None:
        delete(trip.picture_path)

    trip.picture_path = file.id
    save_changes(trip)
Ejemplo n.º 7
0
def get_messages(trip_id):
    if not trip_exists(trip_id):
        raise TripNotFoundException(trip_id)
    return ChatMessage.query.filter_by(trip_id=trip_id).all()
Ejemplo n.º 8
0
def user_participates_in_trip(user_id, trip_id):
    if not trip_exists(trip_id):
        raise TripNotFoundException(trip_id)

    return any(user.id == user_id
               for user in get_trip_by_id(trip_id).users_trips)
Ejemplo n.º 9
0
def get_user_steps_participation(user, trip_id):
    if not trip_exists(trip_id):
        raise TripNotFoundException(trip_id)
    return sorted(list(
        filter(lambda step: step.trip_id == int(trip_id), user.users_steps)),
                  key=lambda step: step.start_datetime)
Ejemplo n.º 10
0
def get_timeline(trip_id):
    if not trip_exists(trip_id):
        raise TripNotFoundException(trip_id)
    return Step.query.filter_by(trip_id=trip_id).order_by(
        Step.start_datetime).all()