5 Commits
1.6 ... 1.9.2

Author SHA1 Message Date
2f4cb1ee7a fix file download 2026-01-07 12:52:52 +01:00
162688ceb4 fix file download 2026-01-07 12:33:08 +01:00
95be4fc5a9 fix file download 2026-01-07 12:25:18 +01:00
dec195e619 export custom metrics 2025-12-17 11:17:46 +01:00
31dd5ec559 php 8.4 support 2025-12-16 16:39:07 +01:00
6 changed files with 65 additions and 40 deletions

View File

@@ -7,13 +7,19 @@ use Illuminate\Support\Str;
abstract class Action extends Entity
{
public function action(
$type = 'info',
$title = null,
$message = null,
$button = null,
$url = null,
$files = [],
string $type = 'info',
?string $title = null,
?string $message = null,
?string $button = null,
?string $url = null,
array $files = [],
) {
foreach ($files as $i => $file) {
if (isset($file['content'])) {
$files[$i]['content'] = base64_encode($file['content']);
}
}
return [
'json' => [
'type' => 'action',
@@ -23,16 +29,17 @@ abstract class Action extends Entity
}
public function file(
$contents,
$name = '',
$type = ''
string $path,
string $name = '',
string $type = '',
bool $deleteAfterDownload = false,
) {
return [
'file' => compact('contents', 'name', 'type'),
'file' => compact('path', 'name', 'type', 'deleteAfterDownload'),
];
}
public function iframe($url, $expires = 240)
public function iframe(string $url, int $expires = 240)
{
$key = 'pilot_action_' . Str::random(10);
$token = Str::random(40);
@@ -49,7 +56,7 @@ abstract class Action extends Entity
];
}
public function link($url, $expires = 5)
public function link(string $url, int $expires = 5)
{
$key = 'pilot_action_' . Str::random(10);
$token = Str::random(40);
@@ -66,7 +73,25 @@ abstract class Action extends Entity
];
}
public function error($message)
public function exportMetrics(
?string $entry = null,
?array $entries = null,
?string $filter = null,
?array $metrics = null
)
{
return [
'json' => [
'type' => 'export-metrics',
'entry' => $entry,
'entries' => $entries,
'filter' => $filter,
'metrics' => $metrics,
],
];
}
public function error(string $message)
{
return [
'json' => [

View File

@@ -6,7 +6,7 @@ abstract class Entity
{
protected $slug = null;
public function __construct($slug = null)
public function __construct(?string $slug = null)
{
if (! is_null($slug)) {
$this->slug = $slug;

View File

@@ -62,12 +62,12 @@ abstract class Metric extends Widget
];
}
public function filter($label, $value, callable $callback)
public function filter(string $label, $value, callable $callback)
{
return ['label' => $label, 'value' => $value, 'callback' => $callback];
}
public function filters($filters)
public function filters(array $filters)
{
return $this->resolveFilter($filters);
}
@@ -81,7 +81,7 @@ abstract class Metric extends Widget
];
}
public function trend($values)
public function trend(array $values)
{
return [
'type' => 'trend',
@@ -89,7 +89,7 @@ abstract class Metric extends Widget
];
}
public function partition($values)
public function partition(array $values)
{
return [
'type' => 'partition',
@@ -106,7 +106,7 @@ abstract class Metric extends Widget
];
}
public function monitor($available)
public function monitor(bool $available)
{
return [
'type' => 'monitor',

View File

@@ -96,12 +96,12 @@ class PilotServiceProvider extends ServiceProvider
if (isset($output['file'])) {
return response()->download(
$output['file']['content'],
$output['file']['name'],
[
$output['file']['path'],
$output['file']['name'] ?? null,
! empty($output['file']['type']) ? [
'Content-Type' => $output['file']['type'],
]
);
] : []
)->deleteFileAfterSend(isset($output['file']['deleteAfterDownload']) ? $output['file']['deleteAfterDownload'] : false);
}
return response();

View File

@@ -18,14 +18,14 @@ class Pilot
}
public function authorize($token, $user_token)
public function authorize(string $token, string $user_token)
{
if ($token !== $user_token) {
throw new \Exception('Unauthorized Pilot request');
}
}
public function form($slug, callable $function)
public function form(string $slug, callable $function)
{
$this->register('form', $slug, function () use ($function) {
return [
@@ -36,17 +36,17 @@ class Pilot
});
}
public function action($slug, callable $function)
public function action(string $slug, callable $function)
{
$this->register('action', $slug, $function);
}
public function metric($slug, callable $function)
public function metric(string $slug, callable $function)
{
$this->register('metric', $slug, $function);
}
protected function register($type, $slug, callable $function)
protected function register(string $type, string $slug, callable $function)
{
$this->registry[$type][$slug] = $function;
}
@@ -65,7 +65,7 @@ class Pilot
return Response::error("Unknown {$type} {$slug}");
}
public function resolveDependencies($slug, $function, $data, $files)
public function resolveDependencies(string $slug, $function, $data, $files)
{
$entries = isset($data['entries']) && is_array($data['entries']) ? $data['entries'] : [];

View File

@@ -5,12 +5,12 @@ namespace Bluesquare\Pilot;
class Response
{
public static function action(
$type = 'info',
$title = null,
$message = null,
$button = null,
$url = null,
$files = [],
string $type = 'info',
?string $title = null,
?string $message = null,
?string $button = null,
?string $url = null,
array $files = [],
) {
return [
'json' => [
@@ -20,7 +20,7 @@ class Response
];
}
public static function error($message)
public static function error(string $message)
{
return [
'json' => [
@@ -31,9 +31,9 @@ class Response
}
public static function file(
$contents,
$name = '',
$type = ''
string $contents,
string $name = '',
string $type = ''
) {
return [
'file' => compact('contents', 'name', 'type'),