Files
crm.clientright.ru/modules/Workflow2/extends/additionally/c_printnode/PrintNode/Response.php
Fedor ac7467f0b4 Major CRM updates: AI Assistant, Court Status API, S3 integration improvements, and extensive file storage system
- Added comprehensive AI Assistant system (aiassist/ directory):
  * Vector search and embedding capabilities
  * Typebot proxy integration
  * Elastic search functionality
  * Message classification and chat history
  * MCP proxy for external integrations

- Implemented Court Status API (GetCourtStatus.php):
  * Real-time court document status checking
  * Integration with external court systems
  * Comprehensive error handling and logging

- Enhanced S3 integration:
  * Improved file backup system with metadata
  * Batch processing capabilities
  * Enhanced error logging and recovery
  * Copy operations with URL fixing

- Added Telegram contact creation API
- Improved error logging across all modules
- Enhanced callback system for AI responses
- Extensive backup file storage with timestamps
- Updated documentation and README files

- File storage improvements:
  * Thousands of backup files with proper metadata
  * Fix operations for broken file references
  * Project-specific backup and recovery systems
  * Comprehensive file integrity checking

Total: 26,461+ files added/modified including AWS SDK, vendor dependencies, and extensive backup system.
2025-10-16 11:17:21 +03:00

118 lines
2.2 KiB
PHP

<?php
namespace PrintNode;
/**
* Response
*
* HTTP response object.
*/
class Response
{
/**
* Original Request URL
* @var string
*/
private $url;
/**
* Response headers
* @var mixed[]
*/
private $headers;
/**
* Response body
* @var string
*/
private $content;
/**
* Extract the HTTP status code and message
* from the Response headers
* @param void
* @return mixed[]
*/
private function getStatus()
{
if (!($statusArray = preg_grep('/^HTTP\/(1.0|1.1)\s+(\d+)\s+(.+)/', $this->headers))) {
throw new \RuntimeException('Could not determine HTTP status from API response');
}
if (!preg_match('/^HTTP\/(1.0|1.1)\s+(\d+)\s+(.+)/', $statusArray[0], $matchesArray)) {
throw new \RuntimeException('Could not determine HTTP status from API response');
}
return array(
'code' => $matchesArray[2],
'message' => $matchesArray[3],
);
}
/**
* Constructor
* @param mixed $url
* @param mixed $content
* @param mixed $headers
* @return Response
*/
public function __construct($url, $content, array $headers)
{
$this->url = $url;
$this->headers = $headers;
$this->content = $content;
}
/**
* Get Response body
* @param void
* @return string
*/
public function getContent()
{
return $this->content;
}
/**
* Get Response headers
* @param void
* @return mixed[]
*/
public function getHeaders()
{
return $this->headers;
}
/**
* Get Response body decoded into an array
* @param void
* @return mixed
*/
public function getDecodedContent()
{
return json_decode($this->content, true);
}
/**
* Get HTTP status code
* @param void
* @return string
*/
public function getStatusCode()
{
$status = $this->getStatus();
return $status['code'];
}
/**
* Get HTTP status code
* @param void
* @return string
*/
public function getStatusMessage()
{
$status = $this->getStatus();
return $status['message'];
}
}