<?php
namespace api\components;

use api\modules\authserver\exceptions\AuthserverException;
use api\modules\session\exceptions\SessionServerException;
use Yii;

class ErrorHandler extends \yii\web\ErrorHandler {

    public function convertExceptionToArray($exception) {
        if ($exception instanceof AuthserverException || $exception instanceof SessionServerException) {
            return [
                'error' => $exception->getName(),
                'errorMessage' => $exception->getMessage(),
            ];
        }

        return parent::convertExceptionToArray($exception);
    }

    public function logException($exception) {
        if ($exception instanceof AuthserverException) {
            Yii::error($exception, AuthserverException::class . ':' . $exception->getName());
        } elseif ($exception instanceof SessionServerException) {
            Yii::error($exception, SessionServerException::class . ':' . $exception->getName());
        } else {
            parent::logException($exception);
        }
    }

}