Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions src/Clients/CreditNote.php
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@
use Sysix\LexOffice\BaseClient;
use Sysix\LexOffice\Clients\Traits\CreateFinalizeTrait;
use Sysix\LexOffice\Clients\Traits\DocumentClientTrait;
use Sysix\LexOffice\Clients\Traits\FileClientWithAcceptHeaderTrait;
use Sysix\LexOffice\Clients\Traits\GetTrait;
use Sysix\LexOffice\Clients\Traits\PursueFinalizeTrait;
use Sysix\LexOffice\Clients\Traits\VoucherListTrait;
Expand All @@ -15,6 +16,7 @@ class CreditNote extends BaseClient
{
use CreateFinalizeTrait;
use DocumentClientTrait;
use FileClientWithAcceptHeaderTrait;
use GetTrait;
use PursueFinalizeTrait;
use VoucherListTrait;
Expand Down
2 changes: 2 additions & 0 deletions src/Clients/DeliveryNote.php
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@
use Sysix\LexOffice\BaseClient;
use Sysix\LexOffice\Clients\Traits\CreateTrait;
use Sysix\LexOffice\Clients\Traits\DocumentClientTrait;
use Sysix\LexOffice\Clients\Traits\FileClientTrait;
use Sysix\LexOffice\Clients\Traits\GetTrait;
use Sysix\LexOffice\Clients\Traits\PursueTrait;
use Sysix\LexOffice\Clients\Traits\VoucherListTrait;
Expand All @@ -15,6 +16,7 @@ class DeliveryNote extends BaseClient
{
use CreateTrait;
use DocumentClientTrait;
use FileClientTrait;
use GetTrait;
use PursueTrait;
use VoucherListTrait;
Expand Down
2 changes: 2 additions & 0 deletions src/Clients/DownPaymentInvoice.php
Original file line number Diff line number Diff line change
Expand Up @@ -6,12 +6,14 @@

use Sysix\LexOffice\BaseClient;
use Sysix\LexOffice\Clients\Traits\DocumentClientTrait;
use Sysix\LexOffice\Clients\Traits\FileClientWithAcceptHeaderTrait;
use Sysix\LexOffice\Clients\Traits\GetTrait;
use Sysix\LexOffice\Clients\Traits\VoucherListTrait;

class DownPaymentInvoice extends BaseClient
{
use DocumentClientTrait;
use FileClientWithAcceptHeaderTrait;
use GetTrait;
use VoucherListTrait;

Expand Down
2 changes: 2 additions & 0 deletions src/Clients/Dunning.php
Original file line number Diff line number Diff line change
Expand Up @@ -6,12 +6,14 @@

use Sysix\LexOffice\BaseClient;
use Sysix\LexOffice\Clients\Traits\DocumentClientTrait;
use Sysix\LexOffice\Clients\Traits\FileClientTrait;
use Sysix\LexOffice\Clients\Traits\GetTrait;
use Sysix\LexOffice\Clients\Traits\PursueTrait;

class Dunning extends BaseClient
{
use DocumentClientTrait;
use FileClientTrait;
use GetTrait;
use PursueTrait;

Expand Down
2 changes: 2 additions & 0 deletions src/Clients/Invoice.php
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@
use Sysix\LexOffice\BaseClient;
use Sysix\LexOffice\Clients\Traits\CreateFinalizeTrait;
use Sysix\LexOffice\Clients\Traits\DocumentClientTrait;
use Sysix\LexOffice\Clients\Traits\FileClientWithAcceptHeaderTrait;
use Sysix\LexOffice\Clients\Traits\GetTrait;
use Sysix\LexOffice\Clients\Traits\PursueFinalizeTrait;
use Sysix\LexOffice\Clients\Traits\VoucherListTrait;
Expand All @@ -15,6 +16,7 @@ class Invoice extends BaseClient
{
use CreateFinalizeTrait;
use DocumentClientTrait;
use FileClientWithAcceptHeaderTrait;
use GetTrait;
use PursueFinalizeTrait;
use VoucherListTrait;
Expand Down
2 changes: 2 additions & 0 deletions src/Clients/OrderConfirmation.php
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@
use Sysix\LexOffice\BaseClient;
use Sysix\LexOffice\Clients\Traits\CreateTrait;
use Sysix\LexOffice\Clients\Traits\DocumentClientTrait;
use Sysix\LexOffice\Clients\Traits\FileClientTrait;
use Sysix\LexOffice\Clients\Traits\GetTrait;
use Sysix\LexOffice\Clients\Traits\PursueTrait;
use Sysix\LexOffice\Clients\Traits\VoucherListTrait;
Expand All @@ -15,6 +16,7 @@ class OrderConfirmation extends BaseClient
{
use CreateTrait;
use DocumentClientTrait;
use FileClientTrait;
use GetTrait;
use PursueTrait;
use VoucherListTrait;
Expand Down
2 changes: 2 additions & 0 deletions src/Clients/Quotation.php
Original file line number Diff line number Diff line change
Expand Up @@ -7,13 +7,15 @@
use Sysix\LexOffice\BaseClient;
use Sysix\LexOffice\Clients\Traits\CreateFinalizeTrait;
use Sysix\LexOffice\Clients\Traits\DocumentClientTrait;
use Sysix\LexOffice\Clients\Traits\FileClientTrait;
use Sysix\LexOffice\Clients\Traits\GetTrait;
use Sysix\LexOffice\Clients\Traits\VoucherListTrait;

class Quotation extends BaseClient
{
use CreateFinalizeTrait;
use DocumentClientTrait;
use FileClientTrait;
use GetTrait;
use VoucherListTrait;

Expand Down
10 changes: 6 additions & 4 deletions src/Clients/Traits/DocumentClientTrait.php
Original file line number Diff line number Diff line change
Expand Up @@ -7,12 +7,10 @@
use Psr\Http\Message\ResponseInterface;

/**
* @deprecated use the FileClientTrait instead
* @deprecated use the FileClientTrait or FileClientWithAcceptHeaderTrait instead
*/
trait DocumentClientTrait
{
use FileClientTrait;

public function document(string $id, bool $asContent = false, string $acceptHeader = '*/*'): ResponseInterface
{
trigger_error(__METHOD__.' should not be called anymore, in future versions this method WILL not exist', E_USER_DEPRECATED);
Expand All @@ -25,6 +23,10 @@ public function document(string $id, bool $asContent = false, string $acceptHead
return $response;
}

return $this->file($id, $acceptHeader);
$this->api->newRequest('GET', $this->resource . '/' . rawurlencode($id) . '/file');

return $this->api
->setRequest($this->api->getRequest()->withHeader('Accept', $acceptHeader))
->getResponse();
}
}
4 changes: 2 additions & 2 deletions src/Clients/Traits/FileClientTrait.php
Original file line number Diff line number Diff line change
Expand Up @@ -8,12 +8,12 @@

trait FileClientTrait
{
public function file(string $id, string $acceptHeader = '*/*'): ResponseInterface
public function file(string $id): ResponseInterface
{
$this->api->newRequest('GET', $this->resource . '/' . rawurlencode($id) . '/file');

return $this->api
->setRequest($this->api->getRequest()->withHeader('Accept', $acceptHeader))
->setRequest($this->api->getRequest()->withHeader('Accept', '*/*'))
->getResponse();
}
}
19 changes: 19 additions & 0 deletions src/Clients/Traits/FileClientWithAcceptHeaderTrait.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
<?php

declare(strict_types=1);

namespace Sysix\LexOffice\Clients\Traits;

use Psr\Http\Message\ResponseInterface;

trait FileClientWithAcceptHeaderTrait
{
public function file(string $id, string $acceptHeader = '*/*'): ResponseInterface
{
$this->api->newRequest('GET', $this->resource . '/' . rawurlencode($id) . '/file');

return $this->api
->setRequest($this->api->getRequest()->withHeader('Accept', $acceptHeader))
->getResponse();
}
}
2 changes: 1 addition & 1 deletion src/Utils.php
Original file line number Diff line number Diff line change
Expand Up @@ -83,7 +83,7 @@ public static function createStream(mixed $content): StreamInterface
*
* @param array<string, string|bool|resource> $content
*/
public static function createMultipartStream(array $content, string $boundary = null): MultipartStream
public static function createMultipartStream(array $content, ?string $boundary = null): MultipartStream
{
$stream = [];
$boundary = !is_null($boundary) && $boundary !== '' ? $boundary : '--lexoffice';
Expand Down
23 changes: 23 additions & 0 deletions tests/Clients/CreditNoteTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -184,6 +184,29 @@ public function testFileContent(): void
$this->assertInstanceOf(ResponseInterface::class, $response);

$this->assertEquals('GET', $api->getRequest()->getMethod());
$this->assertEquals(
'*/*',
$api->getRequest()->getHeaderLine('Accept')
);
$this->assertEquals(
$api->apiUrl . '/v1/credit-notes/resource-id/file',
$api->getRequest()->getUri()->__toString()
);
}

public function testFileContentWithAcceptHeader(): void
{
[$api, $stub] = $this->createClientMockObject(CreditNote::class);

$response = $stub->file('resource-id', 'application/xml');

$this->assertInstanceOf(ResponseInterface::class, $response);

$this->assertEquals('GET', $api->getRequest()->getMethod());
$this->assertEquals(
'application/xml',
$api->getRequest()->getHeaderLine('Accept')
);
$this->assertEquals(
$api->apiUrl . '/v1/credit-notes/resource-id/file',
$api->getRequest()->getUri()->__toString()
Expand Down
23 changes: 23 additions & 0 deletions tests/Clients/DownPaymentInvoiceTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -99,6 +99,29 @@ public function testFileContent(): void
$this->assertInstanceOf(ResponseInterface::class, $response);

$this->assertEquals('GET', $api->getRequest()->getMethod());
$this->assertEquals(
'*/*',
$api->getRequest()->getHeaderLine('Accept')
);
$this->assertEquals(
$api->apiUrl . '/v1/down-payment-invoices/resource-id/file',
$api->getRequest()->getUri()->__toString()
);
}

public function testFileContentWithAcceptHeader(): void
{
[$api, $stub] = $this->createClientMockObject(DownPaymentInvoice::class);

$response = $stub->file('resource-id', 'application/xml');

$this->assertInstanceOf(ResponseInterface::class, $response);

$this->assertEquals('GET', $api->getRequest()->getMethod());
$this->assertEquals(
'application/xml',
$api->getRequest()->getHeaderLine('Accept')
);
$this->assertEquals(
$api->apiUrl . '/v1/down-payment-invoices/resource-id/file',
$api->getRequest()->getUri()->__toString()
Expand Down
24 changes: 24 additions & 0 deletions tests/Clients/InvoiceTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -184,9 +184,33 @@ public function testFileContent(): void
$this->assertInstanceOf(ResponseInterface::class, $response);

$this->assertEquals('GET', $api->getRequest()->getMethod());
$this->assertEquals(
'*/*',
$api->getRequest()->getHeaderLine('Accept')
);
$this->assertEquals(
$api->apiUrl . '/v1/invoices/resource-id/file',
$api->getRequest()->getUri()->__toString()
);
}

public function testFileContentWithAcceptHeader(): void
{
[$api, $stub] = $this->createClientMockObject(Invoice::class);

$response = $stub->file('resource-id', 'application/xml');

$this->assertInstanceOf(ResponseInterface::class, $response);

$this->assertEquals('GET', $api->getRequest()->getMethod());
$this->assertEquals(
'application/xml',
$api->getRequest()->getHeaderLine('Accept')
);
$this->assertEquals(
$api->apiUrl . '/v1/invoices/resource-id/file',
$api->getRequest()->getUri()->__toString()
);
}

}