HEX
Server: Microsoft-IIS/8.5
System: Windows NT YDAWBH120 6.3 build 9600 (Windows Server 2012 R2 Standard Edition) AMD64
User: tentjecom_web (0)
PHP: 7.4.14
Disabled: NONE
Upload Files
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]+;)/', '&amp;', $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);
    }
}