def request_uber():
    """Make sandbox Uber ride request"""

    search = Search.query.order_by(Search.date.desc()).first()
    search.uber_request = True
    db.session.commit()

    credentials2 = import_oauth2_credentials()
    
    oauth2credential = OAuth2Credential(
                client_id=credentials2.get('client_id'),
                access_token=sesh.get('access_token'),
                expires_in_seconds=credentials2.get('expires_in_seconds'),
                scopes=credentials2.get('scopes'),
                grant_type=credentials2.get('grant_type'),
                redirect_url=credentials2.get('redirect_url'),
                client_secret=credentials2.get('client_secret'),
                refresh_token=credentials2.get('refresh_token'),
            )

    uber_session = Session(oauth2credential=oauth2credential)

    uber_client = UberRidesClient(uber_session, sandbox_mode=True)

    # receive data from Ajax call
    start_lat = request.form.get('start_lat')
    start_lng = request.form.get('start_lng')
    end_lat = request.form.get('end_lat')
    end_lng = request.form.get('end_lng')

    response = uber_client.get_products(37.3688301, -122.0363495)

    products = response.json.get('products')

    product_id = products[0].get('product_id')

    # make sandbox calls
    ride_request = uber_client.request_ride(product_id=product_id, 
                                            start_latitude=37.3688301, 
                                            start_longitude=-122.0363495, 
                                            end_latitude=37.8003415, 
                                            end_longitude=-122.4331332)
 
    ride_details = ride_request.json

    ride_id = ride_details.get('request_id')

    get_ride = uber_client.update_sandbox_ride(ride_id, 'accepted')

    send_uber_text();

    return jsonify(ride_details)
Beispiel #2
0
def requests2():

    from uber_rides.client import UberRidesClient
    from uber_rides.session import Session

    sessionUberRides = Session(server_token=config.get('server_token'))

    client = UberRidesClient(sessionUberRides, sandbox_mode=True)
    print sessionUberRides

    response = client.get_products(config.get('start_latitude'),
                                   config.get('start_longitude'))
    products = response.json.get('products')
    product_id = products[0].get('product_id')

    print product_id

    print response.status_code
    client = UberRidesClient(generate_oauth_service(), sandbox_mode=True)

    responseUber = client.request_ride(
        product_id=product_id,
        start_latitude=config.get('start_latitude'),
        start_longitude=config.get('start_longitude'),
        end_latitude=config.get('end_latitude'),
        end_longitude=config.get('end_longitude'),
    )

    print responseUber
    ride_details = responseUber.json
    print ride_details
    ride_id = ride_details.get('request_id')

    responseUber = client.update_sandbox_ride(ride_id, 'accepted')

    # url = config.get('base_uber_url_SANDBOX') + 'requests'
    # params = {
    #     'start_latitude': config.get('start_latitude'),
    #     'start_longitude': config.get('start_longitude'),
    #     'end_latitude': config.get('end_latitude'),
    #     'end_longitude': config.get('end_longitude'),
    # }
    #
    #
    # print url, generate_ride_headers(session.get('access_token'))
    # response = app.requests_session.post(
    #     url,
    #     headers=generate_ride_headers(session.get('access_token')),
    #     data=params
    # )
    #
    #
    # print response

    if response.status_code != 204:
        return 'There was an error ' + response
    return render_template(
        'results.html',
        endpoint='requests',
        data=responseUber,
    )
Beispiel #3
0
def requests2():

    from uber_rides.client import UberRidesClient
    from uber_rides.session import Session


    sessionUberRides = Session(server_token=config.get('server_token'))

    client = UberRidesClient(sessionUberRides, sandbox_mode=True)
    print sessionUberRides

    response = client.get_products(config.get('start_latitude'), config.get('start_longitude'))
    products = response.json.get('products')
    product_id = products[0].get('product_id')

    print product_id

    print response.status_code
    client = UberRidesClient(generate_oauth_service(), sandbox_mode=True)

    responseUber = client.request_ride(
        product_id=product_id,
        start_latitude=config.get('start_latitude'),
        start_longitude=config.get('start_longitude'),
        end_latitude=config.get('end_latitude'),
        end_longitude=config.get('end_longitude'),
    )

    print responseUber
    ride_details = responseUber.json
    print ride_details
    ride_id = ride_details.get('request_id')

    responseUber = client.update_sandbox_ride(ride_id, 'accepted')


    # url = config.get('base_uber_url_SANDBOX') + 'requests'
    # params = {
    #     'start_latitude': config.get('start_latitude'),
    #     'start_longitude': config.get('start_longitude'),
    #     'end_latitude': config.get('end_latitude'),
    #     'end_longitude': config.get('end_longitude'),
    # }
    #
    #
    # print url, generate_ride_headers(session.get('access_token'))
    # response = app.requests_session.post(
    #     url,
    #     headers=generate_ride_headers(session.get('access_token')),
    #     data=params
    # )
    #
    #
    # print response

    if response.status_code != 204 :
        return 'There was an error ' + response
    return render_template(
        'results.html',
        endpoint='requests',
        data=responseUber,
    )
Beispiel #4
0
class Uber_api(object):
    def __init__(self):
        self.url, self.auth_flow = get_auth_url()

    def get_AuthUrl(self):
        return self.url

    def get_AuthCredentials(self, red_url, cred):
        if red_url:
            session = self.auth_flow.get_session(red_url)
            self.client = UberRidesClient(session, sandbox_mode=False)
            cred = session.oauth2credential
            return cred
        else:
            session = Session(oauth2credential=cred)
            self.client = UberRidesClient(session, sandbox_mode=False)

    def user_profile(self):

        reponse = self.client.get_user_profile()
        profile = reponse.json

        first_name = profile.get('first_name')
        last_name = profile.get('last_name')
        email = profile.get('email')

        return first_name, last_name, email

    def user_history(self):

        reponse = self.client.get_user_activity()
        history = reponse.json

        return history

    def get_products(self, lat=37.77, lng=-122.41):

        response = self.client.get_products(lat, lng).json
        #self.product_id = pdct[0].get('product_id')

        return response

    def get_estimate_pricess(self,
                             start_latitude=37.77,
                             start_longitude=-122.41,
                             end_latitude=37.79,
                             end_longitude=-122.41):

        res = self.client.get_price_estimates(start_latitude=start_latitude,
                                              start_longitude=start_longitude,
                                              end_latitude=end_latitude,
                                              end_longitude=end_longitude).json

        return res

    def get_estimate_time(self,
                          start_latitude=37.77,
                          start_longitude=-122.41,
                          product_id='57c0ff4e-1493-4ef9-a4df-6b961525cf92'):

        res = self.client.get_pickup_time_estimates(
            start_latitude=start_latitude,
            start_longitude=start_longitude,
            product_id=product_id).json

        return res

    def get_estimate_price(self,
                           st_lat=37.77,
                           st_lng=-122.41,
                           dt_lat=37.79,
                           dt_lng=-122.41,
                           seat_count=2,
                           product_id='a1111c8c-c720-46c3-8534-2fcdd730040d'):

        estimate = self.client.estimate_ride(product_id=product_id,
                                             start_latitude=st_lat,
                                             start_longitude=st_lng,
                                             end_latitude=dt_lat,
                                             end_longitude=dt_lng,
                                             seat_count=seat_count)
        est = estimate.json.get('fare')
        #self.fare_id = est['fare_id']

        return est

    def request_ride(self,
                     st_lat=37.77,
                     st_lng=-122.41,
                     dt_lat=37.79,
                     dt_lng=-122.41,
                     seat_count=2,
                     prod_id='',
                     fare_id=''):

        response = self.client.request_ride(product_id=prod_id,
                                            start_latitude=st_lat,
                                            start_longitude=st_lng,
                                            end_latitude=dt_lat,
                                            end_longitude=dt_lng,
                                            seat_count=seat_count,
                                            fare_id=fare_id)

        req = response.json
        #self.request_id = req.get('request_id')

        return req

    def riders_details(self, req_id="221448y7e32ye"):
        res = self.client.get_ride_details(req_id)
        ride = res.json

        return ride

    def process_request(self, req_id):
        status = 'accepted'
        self.client.update_sandbox_ride(req_id, status)
        #status = ['in_progress','accepted','completed']
#
#        for i in range(len(status)):
#            self.client.update_sandbox_ride(req_id,status[i])
#            time.sleep(15)

    def cancel_current_ride(self):
        res = self.client.cancel_current_ride()

        return res.json

    def cancel_ride(self, req_id):
        res = self.client.cancel_ride(req_id)

        return res.json