2017 © Pedro Peláez
 

library uber

simple uber php sdk implementation for laravel

image

nilsenj/uber

simple uber php sdk implementation for laravel

  • Monday, February 5, 2018
  • by Ivan Nikolenko
  • Repository
  • 2 Watchers
  • 5 Stars
  • 6 Installations
  • PHP
  • 0 Dependents
  • 0 Suggesters
  • 0 Forks
  • 1 Open issues
  • 1 Versions
  • 0 % Grown

The README.md

nilsenj/uber

uber api v1.* for Laravel 5.*, (*1)

First go to uber dashboard, (*2)

and get server_token, (*3)

Installation

  1. Either run composer require nilsenj/uber or add "nilsenj/uber": "dev-master" to the require key in composer.json and run composer install, (*4)

  2. Add \nilsenj\Uber\UberServiceProvider::class, to the providers key in config/app.php, (*5)

  3. Add 'Uber' => \nilsenj\Uber\Facades\UberFacade::class, to the aliases key in config/app.php
  4. Do php artisan vendor:publish to publish the config. You can see it in config/uber.php

Usage

Using Contract

``` php protected $uber;, (*6)

/**
 * UberController constructor.
 * @param UberContract $uber
 */
public function __construct(UberContract $uber)
{
    $this->uber = $uber;
}

public function index() {
    $this->uber->someMethod();
}
#####List Of Methods

### Get Products

#### By location:

```php
$products = app('UberContract')->getProductsByLocation($latitude, $longitude);

https://developer.uber.com/docs/riders/references/api/v1.2/products-get, (*7)

By Id:

$product = app('UberContract')->getProductsById($productId);

https://developer.uber.com/docs/riders/references/api/v1.2/products-product_id-get, (*8)

Get Price Estimates

$estimates = app('UberContract')->getPriceEstimates($start_latitude, $start_longitude, $end_latitude, $end_longitude);

https://developer.uber.com/docs/riders/references/api/v1.2/estimates-price-get, (*9)

Get Time Estimates

$estimates = app('UberContract')->getTimeEstimates($start_latitude, $start_longitude);

https://developer.uber.com/docs/riders/references/api/v1.2/estimates-time-get, (*10)

Get Promotions

$promotions = app('UberContract')->getPromotions($start_latitude, $start_longitude, $end_latitude, $end_longitude);

https://developer.uber.com/docs/riders/ride-promotions/introduction, (*11)

Get User Activity

This feature is only available since version 1.1., (*12)

$history = app('UberContract')->getUserActivity();

https://developer.uber.com/docs/riders/references/api/v1.2/history-get, (*13)

Get User Profile

$profile = app('UberContract')->getUserProfile();

https://developer.uber.com/docs/riders/references/api/v1.2/me-get, (*14)

Update User Profile

$attributes = array('applied_promotion_codes' => 'PROMO_CODE');
$profileResponse = app('UberContract')->updateUserProfile($attributes);

https://developer.uber.com/docs/riders/references/api/v1.2/me-patch, (*15)

Get Payment Methods

$paymentMethods = app('UberContract')->getPaymentMethods();

https://developer.uber.com/docs/riders/references/api/v1.2/payment-methods-get, (*16)

Get Place

$placeId = 'home';
$place = app('UberContract')->getPlace($placeId);

https://developer.uber.com/docs/riders/references/api/v1.2/places-place_id-get, (*17)

Update a Place

$placeId = 'home';
$attributes = array('address' => '685 Market St, San Francisco, CA 94103, USA');
$place = app('UberContract')->updatePlace($placeId, $attributes);

https://developer.uber.com/docs/riders/references/api/v1.2/places-place_id-put, (*18)

Request A Ride

$request = app('UberContract')->requestToRide($start_latitude, $start_longitude, $end_latitude, 
                $end_longitude, $product_id = null, $surge_confirmation_id = null, $payment_method_id = null);

https://developer.uber.com/docs/riders/ride-requests/tutorials/api/best-practices#handling-surge-pricing, (*19)

Get Current Ride Details

$request = app('UberContract')->getCurrentRideDetails();

https://developer.uber.com/docs/riders/references/api/v1.2/requests-current-get, (*20)

Get Ride Details

$request = app('UberContract')->getRideDetails($requestId);

https://developer.uber.com/docs/riders/references/api/v1.2/requests-request_id-get, (*21)

Update Current Ride Details


$end_address= '685 Market St, San Francisco, CA 94103, USA', $end_nickname = 'da crib', $end_place_id = 'home', $end_latitude = '41.87499492', $end_longitude = '-87.67126465' $updateRequest = app('UberContract')->updateCurrentRideDetails($end_address, $end_nickname, $end_place_id, $end_latitude, $end_longitude);

https://developer.uber.com/docs/riders/references/api/v1.2/requests-current-patch, (*22)

Update Ride Details

$requestId = '4bfc6c57-98c0-424f-a72e-c1e2a1d49939'

$end_address = '685 Market St, San Francisco, CA 94103, USA',
$end_nickname = 'da crib',
$end_place_id = 'home',
$end_latitude = '41.87499492',
$end_longitude = '-87.67126465'

$updateRequest = Uber::updateRideDetails($requestId, $end_address, $end_nickname, $end_place_id,
                                                             $end_latitude, $end_longitude);

https://developer.uber.com/docs/riders/references/api/v1.2/requests-request_id-patch, (*23)

Get Ride Estimate

$product_id = '4bfc6c57-98c0-424f-a72e-c1e2a1d49939',
$start_latitude = '41.85582993',
$start_longitude = '-87.62730337',
$end_latitude = '41.87499492', // optional
$end_longitude = '-87.67126465', // optional

$requestEstimate = app('UberContract')->getRideEstimate($product_id, $start_latitude, 
                    $start_longitude, $end_latitude, $end_longitude);

https://developer.uber.com/docs/riders/references/api/v1.2/requests-estimate-post, (*24)

Get Ride Map

$map = Uber::getRideMap($requestId);

https://developer.uber.com/docs/riders/references/api/v1.2/requests-request_id-map-get, (*25)

Get Ride Receipt

$receipt = app('UberContract')->getRideReceipt($requestId);

https://developer.uber.com/docs/riders/references/api/v1.2/requests-current-delete, (*26)

Cancel Ride

$request = app('UberContract')->cancelRide($requestId);

https://developer.uber.com/docs/riders/references/api/v1.2/requests-request_id-delete, (*27)

Create Reminder

$attributes = array(
    'reminder_time' => '1429294463',
    'phone_number' => '555-555-5555',
    'event' => array(
        'time' => '1429294463',
        'name' => 'Frisbee with friends',
        'location' => 'Dolores Park',
        'latitude' => '37.759773',
        'longitude' => '-122.427063',
    ),
    'product_id' => 'a1111c8c-c720-46c3-8534-2fcdd730040d',
    'trip_branding' => array(
        'link_text' => 'View team roster',
        'partner_deeplink' => 'partner://team/9383',
    )
);
$reminder = app('UberContract')->createReminder($attributes)

https://developer.uber.com/docs/riders/references/api/v1.2/reminders-post, (*28)

Get Reminder

$reminderId = '4bfc6c57-98c0-424f-a72e-c1e2a1d49939';
$reminder = app('UberContract')->getReminder($reminderId);

https://developer.uber.com/docs/riders/references/api/v1.2/reminders-reminder_id-get, (*29)

Update Reminder

$reminderId = '4bfc6c57-98c0-424f-a72e-c1e2a1d49939';
$attributes = array(
    'reminder_time' => '1429294463',
    'phone_number' => '555-555-5555',
    'event' => array(
        'time' => '1429294463',
        'name' => 'Frisbee with friends',
        'location' => 'Dolores Park',
        'latitude' => '37.759773',
        'longitude' => '-122.427063',
    ),
    'product_id' => 'a1111c8c-c720-46c3-8534-2fcdd730040d',
    'trip_branding' => array(
        'link_text' => 'View team roster',
        'partner_deeplink' => 'partner://team/9383',
    )
);
$reminder = Uber::updateReminder($reminderId, $attributes);

https://developer.uber.com/docs/riders/references/api/v1.2/reminders-reminder_id-patch, (*30)

Cancel Reminder

$reminderId = '4bfc6c57-98c0-424f-a72e-c1e2a1d49939';
$reminder = app('UberContract')->cancelReminder($reminderId);

https://developer.uber.com/docs/riders/references/api/v1.2/reminders-reminder_id-delete, (*31)

Rate Limiting

This feature is only supported for v1 version of the API., (*32)

Rate limiting is implemented on the basis of a specific client's secret token. By default, 1,000 requests per hour can be made per secret token., (*33)

When consuming the service with this package, your rate limit status will be made available within the client., (*34)

$rateLimit = app('UberContract')->rateLimiting($productId);
will return an array
["limit" => , "remaining" => , "reset" => ]

These values will update after each request. getRateLimit will return null after the client is created and before the first successful request., (*35)

https://developer.uber.com/v1/api-reference/#rate-limiting, (*36)

Using the Sandbox

Modify the status of an ongoing sandbox Request., (*37)

These methods will throw Stevenmaguire\Uber\Exception when invoked while the client is not in sandbox mode. The underlying API endpoints have no effect unless you are using the sandbox environment., (*38)

$product_id = '4bfc6c57-98c0-424f-a72e-c1e2a1d49939',
$start_latitude = '41.85582993',
$start_longitude = '-87.62730337',
$end_latitude = '41.87499492',
$end_longitude = '-87.67126465'

$updateRequest = app('UberContract')->modifyOngoingStatusRequestSandbox(
                 $product_id, $start_latitude, $start_longitude, $end_latitude,
                 $end_longitude, $status = ''); 

The Versions

05/02 2018

dev-master

9999999-dev https://github.com/nilsenj/uber

simple uber php sdk implementation for laravel

  Sources   Download

MIT

The Requires

 

The Development Requires

by Nikolenko Ivan

sdk uber sdk implementation