Files
kulakpos_web/vendor/spatie/flare-client-php/src/Api.php
triagungbiantoro 417b7b7453
All checks were successful
Build, Push and Deploy / build-and-push (push) Successful in 3m27s
Gitea Actions Demo / Explore-Gitea-Actions (push) Successful in 16s
Build, Push and Deploy / deploy-staging (push) Successful in 31s
Build, Push and Deploy / deploy-production (push) Has been skipped
harga pada beranda terhubung ke manage plans di dashboard admin
2026-04-25 21:57:25 +07:00

87 lines
1.8 KiB
PHP
Executable File

<?php
namespace Spatie\FlareClient;
use Exception;
use Spatie\FlareClient\Http\Client;
use Spatie\FlareClient\Truncation\ReportTrimmer;
class Api
{
protected Client $client;
protected bool $sendReportsImmediately = false;
/** @var array<int, Report> */
protected array $queue = [];
public function __construct(Client $client)
{
$this->client = $client;
register_shutdown_function([$this, 'sendQueuedReports']);
}
public function sendReportsImmediately(): self
{
$this->sendReportsImmediately = true;
return $this;
}
public function report(Report $report): void
{
try {
$this->sendReportsImmediately
? $this->sendReportToApi($report)
: $this->addReportToQueue($report);
} catch (Exception $e) {
//
}
}
public function sendTestReport(Report $report): self
{
$this->sendReportToApi($report);
return $this;
}
protected function addReportToQueue(Report $report): self
{
$this->queue[] = $report;
return $this;
}
public function sendQueuedReports(): void
{
try {
foreach ($this->queue as $report) {
$this->sendReportToApi($report);
}
} catch (Exception $e) {
//
} finally {
$this->queue = [];
}
}
protected function sendReportToApi(Report $report): void
{
$payload = $this->truncateReport($report->toArray());
$this->client->post('reports', $payload);
}
/**
* @param array<int|string, mixed> $payload
*
* @return array<int|string, mixed>
*/
protected function truncateReport(array $payload): array
{
return (new ReportTrimmer())->trim($payload);
}
}