<?php
namespace  Autogedal\FbReviews\Block;

use Magento\Framework\View\Element\Template;
use Autogedal\FbReviews\Model\FbReview;
use Magento\Framework\UrlInterface;

class FacebookReviews extends Template
{
    const DESCRIPTION_LENGTH = 150;

    private $fbReview;

    public function __construct(
        Template\Context $context,
        FbReview $fbReview,
        array $data = []
    ) {
        $this->fbReview = $fbReview;
        parent::__construct($context, $data);
    }

    public function getFacebookReviews()
    {
        return $this->fbReview->getCollection()->addFieldToFilter('status', 1);
    }

    public function getReviewContent($facebookReview)
    {
        $reviewContent = $facebookReview->getFacebookReview();
        return (strlen($reviewContent) > self::DESCRIPTION_LENGTH) ? substr($reviewContent, 0, self::DESCRIPTION_LENGTH).'...' : $reviewContent;
    }

    public function getReviewDate($facebookReview)
    {
        $timestamp = strtotime($facebookReview->getFacebookReviewDate());
        return date("d.m.Y", $timestamp);
    }

    public function getImageUrl($facebookReview)
    {
        return $this->_urlBuilder->getBaseUrl(['_type' => UrlInterface::URL_TYPE_MEDIA]) . 'fbreview/images/tmp/' . $facebookReview->getFacebookImage();
    }

    public function getRatingPercentage($facebookReview)
    {
        $rating = $facebookReview->getFacebookRating();
        if ($rating < 1) {
            $rating = 1;
        } elseif ($rating > 5) {
            $rating = 5;
        }
        
        return ($rating / 5) * 100;
    }
}