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');
}
}