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 ...@@ -37,35 +37,45 @@ class APIController extends AbstractController
*/ */
public function streamStatus() public function streamStatus()
{ {
$client = HttpClient::create(); $data = [];
$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'); $successful = false;
$apiAccessResponse = json_decode($apiAccessResponseRaw->getContent());
try {
$apiAccessToken = $apiAccessResponse->access_token; $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');
$apiResponseRaw = $client->request('GET', 'https://api.twitch.tv/helix/streams/?user_login=spinshare', [ $apiAccessResponse = json_decode($apiAccessResponseRaw->getContent());
'headers' => [
'Client-ID' => $_ENV['TWITCH_API_CLIENT_ID'], $apiAccessToken = $apiAccessResponse->access_token;
'Authorization' => 'Bearer '.$apiAccessToken
], $apiResponseRaw = $client->request('GET', 'https://api.twitch.tv/helix/streams/?user_login=spinshare', [
]); 'headers' => [
$apiResponse = json_decode($apiResponseRaw->getContent()); 'Client-ID' => $_ENV['TWITCH_API_CLIENT_ID'],
'Authorization' => 'Bearer '.$apiAccessToken
if(count($apiResponse->data) != 0) { ],
$data = [ ]);
"title" => $apiResponse->data[0]->title, $apiResponse = json_decode($apiResponseRaw->getContent());
"viewers" => $apiResponse->data[0]->viewer_count,
"isLive" => ($apiResponse->data[0]->type == "live") ? true : false $successful = true;
];
} else { if(count($apiResponse->data) != 0) {
$data = [ $data = [
"title" => "", "title" => $apiResponse->data[0]->title,
"viewers" => 0, "viewers" => $apiResponse->data[0]->viewer_count,
"isLive" => false "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', '*'); $response->headers->set('Access-Control-Allow-Origin', '*');
return $response; 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