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/sportivo.komma.pro/app/Komma/References/ReferenceService.php
<?php


namespace Komma\References;

use Carbon\Carbon;

class ReferenceService
{
    /**
     * @var FacebookService
     */
    private $facebookService;

    /**
     * @param FacebookService $facebookService
     */
    public function __construct(FacebookService $facebookService)
    {
        $this->facebookService = $facebookService;
    }

    /*
     * Select all ratings
     * @return array
     */
    public function getRatings()
    {
        if( ! $ratingsGraphObject = $this->facebookService->getRatings())
        {
            return \Config::get('ratingsFallback');
        }

        $list = [];
        foreach($ratingsGraphObject->getProperty('data')->asArray() as $rating)
        {
            if($rating->rating > 2)
            {
                $list[] = $this->getUpdatedRating($rating);
            }
        }
        return $list;
    }

    public function connectToFacebook(){
        //echo $this->facebookService->ShowOAuthDialog();
        $this->facebookService->getPageToken();
    }

    /*
     * Select the latest rating that has a description
     * @return array
     */
    public function getLastWithText()
    {
        $ratingsGraphObject = $this->facebookService->getRatings();

        foreach($ratingsGraphObject->getProperty('data')->asArray() as $rating)
        {
            if($rating->rating > 2 && ! empty($rating->review_text))
            {
                return $this->getUpdatedRating($rating);
            }
        }
        return false;
    }

    /**
     * @param $rating
     * @return mixed
     */
    private function getUpdatedRating($rating)
    {
        // Put values in new variable
        $updatedRating = $rating;

        // Convert Time
        $updatedRating->created_time = $this->getCreatedTime($rating->created_time);

        // Get profile picture
        if($profilePic = $this->facebookService->getProfilePicById($rating->reviewer->id)){
            $updatedRating->reviewer->profile_pic = $profilePic->getProperty('url');
        }

        return $updatedRating;
    }

    /*
     * Return Dutch time
     */
    private function getCreatedTime($time)
    {
        setlocale(LC_TIME, 'Dutch');
        $time = Carbon::parse($time);
        return $time->formatLocalized('%d %B %Y');
    }
}