<?php
/**
 * Created by Error202
 * Date: 22.08.2018
 */

namespace common\modules\banners\controllers;

use common\modules\banners\entities\Banner;
use common\modules\banners\services\BannerManageService;
use frontend\components\FrontendController;
use yii\web\NotFoundHttpException;

class BannerController extends FrontendController
{
    private $_service;

    public function __construct(string $id, $module, BannerManageService $service, array $config = [])
    {
        parent::__construct($id, $module, $config);
        $this->_service = $service;
    }

    public function actionView()
    {
        $id = filter_input(INPUT_POST, 'id', FILTER_VALIDATE_INT);
        if (\Yii::$app->request->isAjax && $id) {
            $banner = $this->findModel($id);
            $this->_service->addView($banner);
        }
    }

    public function actionClick()
    {
        $id = filter_input(INPUT_POST, 'id', FILTER_VALIDATE_INT);
        if (\Yii::$app->request->isAjax && $id) {
            $banner = $this->findModel($id);
            $this->_service->addClick($banner);
        }
    }

    protected function findModel($id): Banner
    {
        if (($model = Banner::findOne($id)) !== null) {
            return $model;
        }
        throw new NotFoundHttpException('The requested banner does not exist.');
    }
}