Skip to content

Instantly share code, notes, and snippets.

@JeroenJochems
Created December 3, 2016 17:10
Show Gist options
  • Save JeroenJochems/480dab6bfd0e219ccbddf6f7604cb293 to your computer and use it in GitHub Desktop.
Save JeroenJochems/480dab6bfd0e219ccbddf6f7604cb293 to your computer and use it in GitHub Desktop.
A collection of example requests to Temper API
define('API_HOST', 'http://temper.dev');
define('REDIRECT_URI', 'http://testje.dev/callback');
define('CLIENT_ID', 3);
define('CLIENT_SECRET', '6eyVbcEDkC8AYTyq5WLkFGEDMjAnB9qVYaq12uxV');
Route::get('/', function () {
$query = http_build_query([
'client_id' => 3,
'redirect_uri' => REDIRECT_URI,
'response_type' => 'code',
'scope' => 'read write'
]);
return redirect(API_HOST.'/oauth/authorize?'.$query);
});
Route::get('/callback', function (Request $request) {
$http = new GuzzleHttp\Client;
$response = $http->post(API_HOST.'/oauth/token', [
'form_params' => [
'grant_type' => 'authorization_code',
'client_id' => CLIENT_ID,
'client_secret' => CLIENT_SECRET,
'redirect_uri' => REDIRECT_URI,
'code' => $request->get("code"),
],
]);
$json = json_decode((string) $response->getBody(), true);
\Session::set("api_access_token", $json['access_token']);
return 'Access token set in session: <br />'.$json['access_token'];
});
Route::get('/get-jobs', function (Request $request) {
$http = new GuzzleHttp\Client;
$response = $http->get(API_HOST.'/api/v1/jobs', [
'headers' => [
'Accept' => 'application/json',
'Authorization' => 'Bearer '.Session::get("api_access_token"),
],
]);
return $response;
});
Route::get('/get-shifts', function (Request $request) {
$http = new GuzzleHttp\Client;
$response = $http->get(API_HOST.'/api/v1/shifts', [
'headers' => [
'Accept' => 'application/json',
'Authorization' => 'Bearer '.Session::get("api_access_token"),
],
]);
return $response;
});
Route::get('/get-jobs', function (Request $request) {
$http = new GuzzleHttp\Client;
$response = $http->get(API_HOST.'/api/v1/jobs', [
'headers' => [
'Accept' => 'application/json',
'Authorization' => 'Bearer '.Session::get("api_access_token"),
],
]);
return $response;
});
Route::get('/post-shift', function (Request $request) {
$http = new GuzzleHttp\Client;
$job = json_decode($http->get(API_HOST.'/api/v1/jobs', [
'headers' => [
'Accept' => 'application/json',
'Authorization' => 'Bearer '.Session::get("api_access_token"),
],
])->getBody())->data[0];
$data = [
'job_id' => $job->id,
'start_at' => \Carbon\Carbon::now()->addWeek()->toIso8601String(),
'end_at' => \Carbon\Carbon::now()->addWeek()->addHour(5)->toIso8601String(),
'tariff' => 11,
'tempers_needed' => 4,
'auto_accept_pool' => true,
'auto_accept_after_24_hours' => true,
'variable_pricing' => true
];
$response = $http->post(API_HOST.'/api/v1/shifts', [
'form_params' => $data,
'headers' => [
'Accept' => 'application/json',
'Authorization' => 'Bearer '.Session::get("api_access_token"),
],
]);
return $response;
});
Route::get('/patch-shift', function (Request $request) {
$http = new GuzzleHttp\Client;
$shift = json_decode($http->get(API_HOST.'/api/v1/shifts', [
'headers' => [
'Accept' => 'application/json',
'Authorization' => 'Bearer '.Session::get("api_access_token"),
],
])->getBody())->data[0];
$data = [
'tariff' => 14,
'tempers_needed' => 6,
'auto_accept_pool' => false,
'pingback_url' => 'http://google.nl',
];
$response = $http->patch(API_HOST.'/api/v1/shifts/'.$shift->id, [
'form_params' => $data,
'headers' => [
'Accept' => 'application/json',
'Authorization' => 'Bearer '.Session::get("api_access_token"),
],
]);
return $response;
});
Route::get('/delete-shift', function (Request $request) {
$http = new GuzzleHttp\Client;
$shift = json_decode($http->get(API_HOST.'/api/v1/shifts', [
'headers' => [
'Accept' => 'application/json',
'Authorization' => 'Bearer '.Session::get("api_access_token"),
],
])->getBody())->data[0];
$response = $http->delete(API_HOST.'/api/v1/shifts/'.$shift->id, [
'headers' => [
'Accept' => 'application/json',
'Authorization' => 'Bearer '.Session::get("api_access_token"),
],
]);
return $response;
});
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment