mirror of
https://github.com/itflow-org/itflow
synced 2026-02-28 02:44:53 +00:00
Included WebKlex PHP-IMAP Library in plugins folder to allow for future use when we convert IMAP to allow OAUTH2
This commit is contained in:
91
plugins/php-imap/Exceptions/ResponseException.php
Normal file
91
plugins/php-imap/Exceptions/ResponseException.php
Normal file
@@ -0,0 +1,91 @@
|
||||
<?php
|
||||
/*
|
||||
* File: ResponseException.php
|
||||
* Category: Exception
|
||||
* Author: M. Goldenbaum
|
||||
* Created: 19.01.17 22:21
|
||||
* Updated: -
|
||||
*
|
||||
* Description:
|
||||
* -
|
||||
*/
|
||||
|
||||
namespace Webklex\PHPIMAP\Exceptions;
|
||||
|
||||
use \Exception;
|
||||
use Webklex\PHPIMAP\Connection\Protocols\Response;
|
||||
|
||||
/**
|
||||
* Class ResponseException
|
||||
*
|
||||
* @package Webklex\PHPIMAP\Exceptions
|
||||
*/
|
||||
class ResponseException extends Exception {
|
||||
|
||||
/**
|
||||
* Make a new ResponseException instance
|
||||
* @param Response $response
|
||||
* @param false|boolean $debug
|
||||
* @param Exception|null $exception
|
||||
*
|
||||
* @return ResponseException
|
||||
*/
|
||||
public static function make(Response $response, bool $debug = false, ?Exception $exception = null): ResponseException {
|
||||
$message = "Command failed to process:\n";
|
||||
$message .= "Causes:\n";
|
||||
|
||||
foreach($response->getErrors() as $error) {
|
||||
$message .= "\t- $error\n";
|
||||
}
|
||||
|
||||
if(!$response->data()) {
|
||||
$message .= "\t- Empty response\n";
|
||||
}
|
||||
|
||||
if ($debug) {
|
||||
$message .= self::debug_message($response);
|
||||
}
|
||||
|
||||
foreach($response->getStack() as $_response) {
|
||||
$exception = self::make($_response, $debug, $exception);
|
||||
}
|
||||
|
||||
return new self($message."Error occurred", 0, $exception);
|
||||
}
|
||||
|
||||
/**
|
||||
* Generate a debug message containing all commands send and responses received
|
||||
* @param Response $response
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
protected static function debug_message(Response $response): string {
|
||||
$commands = $response->getCommands();
|
||||
$message = "Commands send:\n";
|
||||
if ($commands) {
|
||||
foreach($commands as $command) {
|
||||
$message .= "\t".str_replace("\r\n", "\\r\\n", $command)."\n";
|
||||
}
|
||||
}else{
|
||||
$message .= "\tNo command send!\n";
|
||||
}
|
||||
|
||||
$responses = $response->getResponse();
|
||||
$message .= "Responses received:\n";
|
||||
if ($responses) {
|
||||
foreach($responses as $_response) {
|
||||
if (is_array($_response)) {
|
||||
foreach($_response as $value) {
|
||||
$message .= "\t".str_replace("\r\n", "\\r\\n", "$value")."\n";
|
||||
}
|
||||
}else{
|
||||
$message .= "\t".str_replace("\r\n", "\\r\\n", "$_response")."\n";
|
||||
}
|
||||
}
|
||||
}else{
|
||||
$message .= "\tNo responses received!\n";
|
||||
}
|
||||
|
||||
return $message;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user