<?php

declare(strict_types=1);

namespace app\controllers;

use yii;
use yii\web\Controller;
use yii\web\Response;

use app\models\AccountForm;

class IdentificationController extends Controller
{
    public function actionIndex()
    {
        if (yii::$app->request->isPost) {
            // POST-запрос

            yii::$app->response->format = Response::FORMAT_JSON;

            if (yii::$app->user->isGuest) {
                // Аккаунт не аутентифицирован

                // Инициализация
                $model = new AccountForm(yii::$app->request->post('AccountForm') ?? yii::$app->request->get('AccountForm') ?? null);

                // Запись ответа
                $return = [
                    'menu' => $this->renderPartial('/account/authentication', compact('model')),
                    '_csrf' => yii::$app->request->getCsrfToken()
                ];
            } else {
                // Аккаунт аутентифицирован

                // Инициализация
                $model = yii::$app->user;

                // Запись ответа
                $return = [
                    'menu' => $this->renderPartial('/account/deauthentication'),
                    '_csrf' => yii::$app->request->getCsrfToken()
                ];
            }

            if (($cookies = yii::$app->request->cookies)->has('redirect')) {
                // Найдено cookie с переадресацией

                // Запись ответа
                $return['redirect'] = '/' . $cookies['redirect'];

                // Очистка cookie
                unset(yii::$app->response->cookies['redirect']);
            }

            return $return;
        }
    }
}
