<?php

namespace common\modules\cases\controllers;

use Yii;
use common\components\BaseController;
use common\modules\cases\models\CasesBids;
use yii\helpers\Json;
use yii\web\NotFoundHttpException;
use yii\web\Response;
use yii\widgets\ActiveForm;

/**
 * Default controller for the `Cases` module
 */
class DefaultController extends BaseController
{
    public static function actionsTitles()
    {
        return [
            'Add' => 'Subscribe to blog'
        ];
    }

    /**
     * Renders the index view for the module
     * @return string
     */
    public function actionIndex()
    {
        return $this->render('index');
    }

    /**
     * @throws \yii\web\NotFoundHttpException
     */
    public function actionAdd($email){
        // Результирующий массив
        $result = [
            'result' => false
        ];
        // Получили и переопределили данные из формы
        if(Yii::$app->request->isAjax) {
            // Создали модель
            $model = new CasesBids();
            // Получили дату
            $date = new \DateTime();
            // Переопределили дату
            $model->date = $date->format('Y-m-d H:i:s');
            $model->email = $email;
            // Открыли транзакцию
            $transaction = Yii::$app->db->beginTransaction();
            // Пытаемся сохранить запись в базе
            try {
                // Если запись успешна
                if($model->save()) {
                    // Коммитим транзакцию
                    $transaction->commit();
                    // Возвращаем результат
                    $result['result'] = true;
                } else {
                    // В противном случае возвращаем форму с ошибками
                    $result['error'] = current(current($model->getErrors()));
                }
            } catch (\Exception $e) {
                // Обрабатываем исключение
                $transaction->rollBack();
                $result['error'] = $e->getMessage();
            }
            echo Json::encode($result);
        } else {
            // Если это не ajax запрос, возвращаем ошибку
            throw new NotFoundHttpException('The requested page does not exist.');
        }
    }
}
