Commit e31ae501 authored by SpinShare's avatar SpinShare

added failsafe to streamStatus if the twitch API acts up

parent 4cc20147
......@@ -37,35 +37,45 @@ class APIController extends AbstractController
*/
public function streamStatus()
{
$client = HttpClient::create();
$apiAccessResponseRaw = $client->request('POST', 'https://id.twitch.tv/oauth2/token?client_id='.$_ENV['TWITCH_API_CLIENT_ID'].'&client_secret='.$_ENV['TWITCH_API_CLIENT_SECRET'].'&grant_type=client_credentials');
$apiAccessResponse = json_decode($apiAccessResponseRaw->getContent());
$apiAccessToken = $apiAccessResponse->access_token;
$apiResponseRaw = $client->request('GET', 'https://api.twitch.tv/helix/streams/?user_login=spinshare', [
'headers' => [
'Client-ID' => $_ENV['TWITCH_API_CLIENT_ID'],
'Authorization' => 'Bearer '.$apiAccessToken
],
]);
$apiResponse = json_decode($apiResponseRaw->getContent());
if(count($apiResponse->data) != 0) {
$data = [
"title" => $apiResponse->data[0]->title,
"viewers" => $apiResponse->data[0]->viewer_count,
"isLive" => ($apiResponse->data[0]->type == "live") ? true : false
];
} else {
$data = [
"title" => "",
"viewers" => 0,
"isLive" => false
];
$data = [];
$successful = false;
try {
$client = HttpClient::create();
$apiAccessResponseRaw = $client->request('POST', 'https://id.twitch.tv/oauth2/token?client_id='.$_ENV['TWITCH_API_CLIENT_ID'].'&client_secret='.$_ENV['TWITCH_API_CLIENT_SECRET'].'&grant_type=client_credentials');
$apiAccessResponse = json_decode($apiAccessResponseRaw->getContent());
$apiAccessToken = $apiAccessResponse->access_token;
$apiResponseRaw = $client->request('GET', 'https://api.twitch.tv/helix/streams/?user_login=spinshare', [
'headers' => [
'Client-ID' => $_ENV['TWITCH_API_CLIENT_ID'],
'Authorization' => 'Bearer '.$apiAccessToken
],
]);
$apiResponse = json_decode($apiResponseRaw->getContent());
$successful = true;
if(count($apiResponse->data) != 0) {
$data = [
"title" => $apiResponse->data[0]->title,
"viewers" => $apiResponse->data[0]->viewer_count,
"isLive" => ($apiResponse->data[0]->type == "live") ? true : false
];
} else {
$data = [
"title" => "",
"viewers" => 0,
"isLive" => false
];
}
} catch(\Exception $e) {
$successful = false;
$data = [];
}
$response = new JsonResponse(['version' => $this->apiVersion, 'status' => 200, 'data' => $data]);
$response = new JsonResponse(['version' => $this->apiVersion, 'status' => $successful ? 200 : 500, 'data' => $data]);
$response->headers->set('Access-Control-Allow-Origin', '*');
return $response;
}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment