File: D:/HostingSpaces/SBogers10/beat-the-barn.komma.nl/app/Composers/EventplannerComposer.php
<?php
namespace App\Composers;
use GuzzleHttp\Client;
use Illuminate\Support\Facades\Log;
class EventplannerComposer
{
public function compose($view)
{
// Load cached event planner score
$score = cache('eventplannerScore', null);
$APIKEY = config('services.eventplanner', null);
/**
* If score is null load from Eventplanner API
* @api https://www.eventplanner.net/developers/#get-a-specific-page
*/
if(!$score && $APIKEY) {
try {
$client = new Client(['base_uri' => 'https://api.eventplanner.net']);
$clientHeader = [ 'X-API-KEY' => $APIKEY ];
$response = $client->get('pages/4130', [ 'headers' => $clientHeader]);
$xmlString = preg_replace('/&(?!#?[a-z0-9]+;)/', '&', $response->getBody()->getContents());
$xml = new \SimpleXMLElement($xmlString);
$score = (float) $xml->ratings->eventplanner;
cache(['eventplannerScore' => $score], now()->addHours(2));
}
catch (\Exception $e) {
Log::error($e);
$score = 9.6;
}
}
$view->with('eventplannerScore', $score);
}
}