Download plugins/API/Renderer/Original.php from Leon4gr45/matomo: direct link, hf CLI and curl.
- Browser
- Download file 3.33 kB
-
https://huggingface.co/spaces/Leon4gr45/matomo/resolve/main/plugins/API/Renderer/Original.php
- Command line
-
hf download hf://spaces/Leon4gr45/matomo/plugins/API/Renderer/Original.php
-
curl -L -o Original.php https://huggingface.co/spaces/Leon4gr45/matomo/resolve/main/plugins/API/Renderer/Original.php
3.33 kB
| /** | |
| * Matomo - free/libre analytics platform | |
| * | |
| * @link https://matomo.org | |
| * @license https://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later | |
| */ | |
| namespace Piwik\Plugins\API\Renderer; | |
| use Piwik\API\ApiRenderer; | |
| use Piwik\API\Request; | |
| use Piwik\Common; | |
| use Piwik\DataTable; | |
| use Piwik\DataTable\DataTableInterface; | |
| use Piwik\Plugins\Monolog\Processor\ExceptionToTextProcessor; | |
| class Original extends ApiRenderer | |
| { | |
| public static function sendPlainTextHeader() | |
| { | |
| Common::sendHeader('Content-Type: text/plain; charset=utf-8'); | |
| } | |
| public function renderSuccess($message) | |
| { | |
| return true; | |
| } | |
| /** | |
| * @param $message | |
| * @param \Exception|\Throwable $exception | |
| * @throws \Exception|\Throwable | |
| * @return string | |
| */ | |
| public function renderException($message, $exception) | |
| { | |
| if ($this->shouldSerialize()) { | |
| $data = [ | |
| 'result' => 'error', | |
| 'message' => $message, | |
| ]; | |
| if ($this->shouldSendBacktrace()) { | |
| $data['backtrace'] = ExceptionToTextProcessor::getMessageAndWholeBacktrace($exception, true); | |
| } | |
| return serialize($data); | |
| } | |
| throw $exception; | |
| } | |
| public function renderDataTable($dataTable) | |
| { | |
| return $this->serializeIfNeeded($dataTable); | |
| } | |
| public function renderArray($array) | |
| { | |
| return $this->serializeIfNeeded($array); | |
| } | |
| public function renderScalar($scalar) | |
| { | |
| return $this->serializeIfNeeded($scalar); | |
| } | |
| public function renderObject($object) | |
| { | |
| return $this->serializeIfNeeded($object); | |
| } | |
| public function renderResource($resource) | |
| { | |
| return $resource; | |
| } | |
| public function sendHeader() | |
| { | |
| if (Request::isRootRequestApiRequest()) { | |
| self::sendPlainTextHeader(); | |
| } | |
| } | |
| /** | |
| * Returns true if the user requested to serialize the output data (&serialize=1 in the request) | |
| */ | |
| private function shouldSerialize(): bool | |
| { | |
| return $this->requestObj->getBoolParameter('serialize', false); | |
| } | |
| private function serializeIfNeeded($response) | |
| { | |
| if ($this->shouldSerialize()) { | |
| if ($response instanceof DataTableInterface) { | |
| // remove COLUMN_AGGREGATION_OPS_METADATA_NAME metadata since it can have closures | |
| $response->filter(function (DataTable $table) { | |
| $allMetadata = $table->getAllTableMetadata(); | |
| unset($allMetadata[DataTable::COLUMN_AGGREGATION_OPS_METADATA_NAME]); | |
| $table->setAllTableMetadata($allMetadata); | |
| if ($this->hideIdSubDataTable) { | |
| foreach ($table->getRows() as $row) { | |
| $row->removeSubtable(); | |
| } | |
| } | |
| // Force string value for segment metadata field (ensures consistency between PDO and mysqli) | |
| if (isset($allMetadata['segment']) && $allMetadata['segment'] === false) { | |
| $table->setMetadata('segment', ''); | |
| } | |
| }); | |
| } | |
| return serialize($response); | |
| } | |
| return $response; | |
| } | |
| } | |