Esempio n. 1
0
        def start_ride_helper(session, city, rider_id, vehicle_id):
            vehicle = session.query(Vehicle).filter_by(
                city=city, id=vehicle_id
            ) if self.multi_region else session.query(Vehicle).filter_by(
                id=vehicle_id)
            vehicle.update({'status': 'in_use'})
            v = vehicle.first()
            # get promo codes associated with this user's account
            upcs = session.query(UserPromoCode).filter_by(
                city=city, user_id=rider_id).all(
                ) if self.multi_region else session.query(
                    UserPromoCode).filter_by(user_id=rider_id).all()

            # determine which codes are valid
            for upc in upcs:
                promo_code = session.query(PromoCode).filter_by(
                    code=upc.code).first()
                if promo_code and promo_code.expiration_time > datetime.datetime.now(
                ):
                    code_to_update = session.query(UserPromoCode).filter_by(
                        city=city, user_id=rider_id,
                        code=upc.code) if self.multi_region else session.query(
                            UserPromoCode).filter_by(user_id=rider_id,
                                                     code=upc.code)
                    code_to_update.update({'usage_count': upc.usage_count + 1})

            r = Ride(city=city,
                     id=MovRGenerator.generate_uuid(),
                     rider_id=rider_id,
                     vehicle_id=vehicle_id,
                     start_address=v.current_location)

            session.add(r)
            return {'city': r.city, 'id': r.id}
Esempio n. 2
0
 def add_user_helper(session, city, name, address, credit_card_number):
     u = User(city=city,
              id=MovRGenerator.generate_uuid(),
              name=name,
              address=address,
              credit_card=credit_card_number)
     session.add(u)
     return {'city': u.city, 'id': u.id}
Esempio n. 3
0
 def add_users_helper(sess, chunk, n):
     users = []
     for i in range(chunk, n):
         users.append(User(id=MovRGenerator.generate_uuid(),
                           city=city,
                           name=datagen.name(),
                           address=datagen.address(),
                           credit_card=datagen.credit_card_number()))
     sess.bulk_save_objects(users)
Esempio n. 4
0
        def add_vehicle_helper(session, city, owner_id, current_location, type, vehicle_metadata, status):
            vehicle_type = type

            vehicle = Vehicle(id=MovRGenerator.generate_uuid(), type=vehicle_type,
                              city=city, owner_id=owner_id, current_location = current_location,
                              status=status,
                              ext=vehicle_metadata)

            session.add(vehicle)
            return {'city': vehicle.city, 'id': vehicle.id}
Esempio n. 5
0
 def add_vehicles_helper(sess, chunk, n):
     owners = sess.query(User).filter_by(city=city).all()
     vehicles = []
     for i in range(chunk, n):
         vehicle_type = MovRGenerator.generate_random_vehicle()
         vehicles.append(Vehicle(id=MovRGenerator.generate_uuid(),
                                 type=vehicle_type,
                                 city=city,
                                 current_location=datagen.address(),
                                 owner_id=(random.choice(owners)).id,
                                 status=MovRGenerator.get_vehicle_availability(),
                                 ext=MovRGenerator.generate_vehicle_metadata(vehicle_type)))
     sess.bulk_save_objects(vehicles)
Esempio n. 6
0
    def add_rides_helper(sess, chunk, n):
        users = sess.query(User).filter_by(city=city).all()
        vehicles = sess.query(Vehicle).filter_by(city=city).all()

        rides = []
        for i in range(chunk, min(chunk + chunk_size, num_rides)):
            start_time = datetime.datetime.now() - datetime.timedelta(days=random.randint(0, 30))
            rides.append(Ride(id=MovRGenerator.generate_uuid(),
                              city=city,
                              rider_id=random.choice(users).id,
                              vehicle_id=random.choice(vehicles).id,
                              start_time=start_time,
                              start_address=datagen.address(),
                              end_address=datagen.address(),
                              revenue=MovRGenerator.generate_revenue(),
                              end_time=start_time + datetime.timedelta(minutes=random.randint(0, 60))))
        sess.bulk_save_objects(rides)
Esempio n. 7
0
        def start_ride_helper(session, city, rider_id, vehicle_id):
            v = session.query(Vehicle).filter_by(city=city, id=vehicle_id).first()

            # get promo codes associated with this user's account
            upcs = session.query(UserPromoCode).filter_by(city=city, user_id=rider_id).all()

            # determine which codes are valid
            for upc in upcs:
                promo_code = session.query(PromoCode).filter_by(code = upc.code).first()
                if promo_code and promo_code.expiration_time > datetime.datetime.now():
                    upc.usage_count+=1;
                    #@todo: do something with the code

            r = Ride(city=city, vehicle_city=city, id=MovRGenerator.generate_uuid(),
                     rider_id=rider_id, vehicle_id=vehicle_id,
                     start_address=v.current_location)
            session.add(r)
            v.status = "in_use"
            return {'city': r.city, 'id': r.id}