From 84bad1626993fc1dc1e7959c87dc593df9269afd Mon Sep 17 00:00:00 2001 From: Marcel Pociot Date: Tue, 1 Aug 2023 11:31:14 +0200 Subject: [PATCH 1/2] Add print support --- src/DataObjects/Printer.php | 18 ++++++++++++++++++ src/System.php | 27 +++++++++++++++++++++++++++ 2 files changed, 45 insertions(+) create mode 100644 src/DataObjects/Printer.php diff --git a/src/DataObjects/Printer.php b/src/DataObjects/Printer.php new file mode 100644 index 0000000..5b1bfc0 --- /dev/null +++ b/src/DataObjects/Printer.php @@ -0,0 +1,18 @@ + $reason, ])->successful(); } + + /** + * @return array<\Native\Laravel\DataObjects\Printer> + */ + public function printers(): array + { + $printers = $this->client->get('system/printers')->json('printers'); + return collect($printers)->map(function ($printer) { + return new Printer( + data_get($printer, 'name'), + data_get($printer, 'displayName'), + data_get($printer, 'description'), + data_get($printer, 'status'), + data_get($printer, 'isDefault'), + data_get($printer, 'options'), + ); + })->toArray(); + } + + public function print(string $html, Printer $printer = null): void + { + $this->client->post('system/print', [ + 'html' => $html, + 'printer' => $printer->name ?? '', + ]); + } } From 4af05cbe47c8c644f0e637c848fe967caaa665d4 Mon Sep 17 00:00:00 2001 From: mpociot Date: Tue, 1 Aug 2023 09:31:45 +0000 Subject: [PATCH 2/2] Fix styling --- src/DataObjects/Printer.php | 3 +-- src/System.php | 1 + 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/DataObjects/Printer.php b/src/DataObjects/Printer.php index 5b1bfc0..30795a8 100644 --- a/src/DataObjects/Printer.php +++ b/src/DataObjects/Printer.php @@ -11,8 +11,7 @@ public function __construct( public int $status, public bool $isDefault, public array $options - ) - { + ) { } } diff --git a/src/System.php b/src/System.php index 9063cdc..03b879b 100644 --- a/src/System.php +++ b/src/System.php @@ -29,6 +29,7 @@ public function promptTouchID(string $reason): bool public function printers(): array { $printers = $this->client->get('system/printers')->json('printers'); + return collect($printers)->map(function ($printer) { return new Printer( data_get($printer, 'name'),