68 lines
		
	
	
		
			2.3 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
			
		
		
	
	
			68 lines
		
	
	
		
			2.3 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
| <?php
 | |
| 
 | |
| namespace goodboyalex\php_components_pack\traits\ActionState;
 | |
| 
 | |
| use goodboyalex\php_components_pack\enums\MessageType;
 | |
| use goodboyalex\php_components_pack\models\ActionStateMessage;
 | |
| 
 | |
| /**
 | |
|  * Часть кода класса ActionState, отвечающая за методы проверки на наличие сообщений.
 | |
|  *
 | |
|  * @author Александр Бабаев
 | |
|  * @package php_components_pack
 | |
|  * @version 1.0
 | |
|  * @since 1.0.13
 | |
|  */
 | |
| trait ActionStateHasTrait
 | |
| {
 | |
|     /**
 | |
|      * Проверяет, есть ли информационные сообщения.
 | |
|      *
 | |
|      * @return bool Наличие сообщений
 | |
|      */
 | |
|     public function HasInfos (): bool
 | |
|     {
 | |
|         return $this->Messages->IsExist(fn (ActionStateMessage $message)
 | |
|             => $message->MessageType
 | |
|             == MessageType::Info);
 | |
|     }
 | |
| 
 | |
|     /**
 | |
|      * Проверяет, успешно ли завершилась операция.
 | |
|      *
 | |
|      * @param bool $onlyCritical Игнорировать все некритические ошибки и предупреждения (не рекомендуется!)
 | |
|      *
 | |
|      * @return bool Успешно ли завершилась операция.
 | |
|      */
 | |
|     public function IsSuccess (bool $onlyCritical = false): bool
 | |
|     {
 | |
|         return ($onlyCritical) ? !$this->HasErrors($onlyCritical) : !$this->HasErrors() && !$this->HasWarnings();
 | |
|     }
 | |
| 
 | |
|     /**
 | |
|      * Проверяет, есть ли ошибки.
 | |
|      *
 | |
|      * @param bool $onlyCritical Учитывать только критические ошибки.
 | |
|      *
 | |
|      * @return bool Наличие ошибок.
 | |
|      */
 | |
|     public function HasErrors (bool $onlyCritical = false): bool
 | |
|     {
 | |
|         return $this->Messages->IsExist(fn (ActionStateMessage $message): bool
 | |
|             => $onlyCritical
 | |
|             ? $message->MessageType == MessageType::Error && $message->IsCritical
 | |
|             : $message->MessageType == MessageType::Error);
 | |
|     }
 | |
| 
 | |
|     /**
 | |
|      * Проверяет, есть ли предупреждения.
 | |
|      *
 | |
|      * @return bool Наличие предупреждений
 | |
|      */
 | |
|     public function HasWarnings (): bool
 | |
|     {
 | |
|         return $this->Messages->IsExist(fn (ActionStateMessage $message)
 | |
|             => $message->MessageType
 | |
|             == MessageType::Warning);
 | |
|     }
 | |
| } |