Skip to content

Commit 0a3a990

Browse files
authored
Merge pull request #192 from enflow-nl/feature/official-download-endpoint
Move SalesInvoice & Estimate download to the official endpoint
2 parents 044dc29 + 329d756 commit 0a3a990

File tree

5 files changed

+57
-59
lines changed

5 files changed

+57
-59
lines changed
Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
<?php
2+
3+
namespace Picqer\Financials\Moneybird\Actions;
4+
5+
/**
6+
* Class Downloadable.
7+
*/
8+
trait Downloadable
9+
{
10+
use BaseTrait;
11+
12+
/**
13+
* Download as PDF.
14+
*
15+
* @return string PDF file data
16+
*
17+
* @throws \Picqer\Financials\Moneybird\Exceptions\ApiException
18+
*/
19+
public function download()
20+
{
21+
$response = $this->connection()->download($this->getEndpoint() . '/' . urlencode($this->id) . '/download_pdf');
22+
23+
return $response->getBody()->getContents();
24+
}
25+
}

src/Picqer/Financials/Moneybird/Actions/PrivateDownloadable.php

Lines changed: 0 additions & 44 deletions
This file was deleted.

src/Picqer/Financials/Moneybird/Connection.php

Lines changed: 21 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3,15 +3,15 @@
33
namespace Picqer\Financials\Moneybird;
44

55
use Exception;
6-
use GuzzleHttp\Psr7;
76
use GuzzleHttp\Client;
7+
use GuzzleHttp\Exception\BadResponseException;
88
use GuzzleHttp\HandlerStack;
9+
use GuzzleHttp\Psr7;
910
use GuzzleHttp\Psr7\Request;
1011
use GuzzleHttp\Psr7\Response;
11-
use Psr\Http\Message\ResponseInterface;
12-
use GuzzleHttp\Exception\BadResponseException;
13-
use Picqer\Financials\Moneybird\Exceptions\ApiException;
1412
use Picqer\Financials\Moneybird\Exceptions\Api\TooManyRequestsException;
13+
use Picqer\Financials\Moneybird\Exceptions\ApiException;
14+
use Psr\Http\Message\ResponseInterface;
1515

1616
/**
1717
* Class Connection.
@@ -287,6 +287,23 @@ public function delete($url, $body = null)
287287
}
288288
}
289289

290+
/**
291+
* @param string $url
292+
* @param array $options
293+
* @return mixed
294+
* @throws ApiException
295+
*/
296+
public function download($url, $options = [])
297+
{
298+
try {
299+
$request = $this->createRequestNoJson('GET', $this->formatUrl($url, 'get'), null);
300+
301+
return $this->client()->send($request, $options);
302+
} catch (Exception $e) {
303+
$this->parseExceptionForErrorMessages($e);
304+
}
305+
}
306+
290307
/**
291308
* @param string $url
292309
* @param array $options

src/Picqer/Financials/Moneybird/Entities/Estimate.php

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -3,15 +3,15 @@
33
namespace Picqer\Financials\Moneybird\Entities;
44

55
use InvalidArgumentException;
6-
use Picqer\Financials\Moneybird\Model;
6+
use Picqer\Financials\Moneybird\Actions\Downloadable;
7+
use Picqer\Financials\Moneybird\Actions\Filterable;
78
use Picqer\Financials\Moneybird\Actions\FindAll;
89
use Picqer\Financials\Moneybird\Actions\FindOne;
9-
use Picqer\Financials\Moneybird\Actions\Storable;
1010
use Picqer\Financials\Moneybird\Actions\Removable;
11-
use Picqer\Financials\Moneybird\Actions\Filterable;
11+
use Picqer\Financials\Moneybird\Actions\Storable;
1212
use Picqer\Financials\Moneybird\Actions\Synchronizable;
13-
use Picqer\Financials\Moneybird\Actions\PrivateDownloadable;
1413
use Picqer\Financials\Moneybird\Entities\SalesInvoice\SendInvoiceOptions;
14+
use Picqer\Financials\Moneybird\Model;
1515

1616
/**
1717
* Class Contact.
@@ -23,7 +23,7 @@
2323
*/
2424
class Estimate extends Model
2525
{
26-
use FindAll, FindOne, Storable, Removable, Synchronizable, Filterable, PrivateDownloadable;
26+
use FindAll, FindOne, Storable, Removable, Synchronizable, Filterable, Downloadable;
2727

2828
/**
2929
* @var array

src/Picqer/Financials/Moneybird/Entities/SalesInvoice.php

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -3,16 +3,16 @@
33
namespace Picqer\Financials\Moneybird\Entities;
44

55
use InvalidArgumentException;
6-
use Picqer\Financials\Moneybird\Model;
6+
use Picqer\Financials\Moneybird\Actions\Downloadable;
7+
use Picqer\Financials\Moneybird\Actions\Filterable;
78
use Picqer\Financials\Moneybird\Actions\FindAll;
89
use Picqer\Financials\Moneybird\Actions\FindOne;
9-
use Picqer\Financials\Moneybird\Actions\Storable;
1010
use Picqer\Financials\Moneybird\Actions\Removable;
11-
use Picqer\Financials\Moneybird\Actions\Filterable;
11+
use Picqer\Financials\Moneybird\Actions\Storable;
1212
use Picqer\Financials\Moneybird\Actions\Synchronizable;
13-
use Picqer\Financials\Moneybird\Exceptions\ApiException;
14-
use Picqer\Financials\Moneybird\Actions\PrivateDownloadable;
1513
use Picqer\Financials\Moneybird\Entities\SalesInvoice\SendInvoiceOptions;
14+
use Picqer\Financials\Moneybird\Exceptions\ApiException;
15+
use Picqer\Financials\Moneybird\Model;
1616

1717
/**
1818
* Class SalesInvoice.
@@ -22,7 +22,7 @@
2222
*/
2323
class SalesInvoice extends Model
2424
{
25-
use FindAll, FindOne, Storable, Removable, Filterable, PrivateDownloadable, Synchronizable;
25+
use FindAll, FindOne, Storable, Removable, Filterable, Downloadable, Synchronizable;
2626

2727
/**
2828
* @var array

0 commit comments

Comments
 (0)