-
Notifications
You must be signed in to change notification settings - Fork 9
Commit
- Implement BatchSendingsEndpoint for managing batch sendings. - Implement BatchSendingsItemsEndpoint for handling items within a batch. - Create BatchSending resource to represent batch sending data. - Add tests for BatchSendings and BatchSendingsItems endpoints. - Update DigiSign class to include batchSendings method.
- Loading branch information
There are no files selected for viewing
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,31 @@ | ||
<?php | ||
|
||
declare(strict_types=1); | ||
|
||
namespace DigitalCz\DigiSign\Endpoint; | ||
|
||
use DigitalCz\DigiSign\DigiSign; | ||
use DigitalCz\DigiSign\Endpoint\Traits\CreateEndpointTrait; | ||
use DigitalCz\DigiSign\Endpoint\Traits\GetEndpointTrait; | ||
use DigitalCz\DigiSign\Endpoint\Traits\UpdateEndpointTrait; | ||
use DigitalCz\DigiSign\Resource\BatchSending; | ||
|
||
/** | ||
* @extends ResourceEndpoint<BatchSending> | ||
*/ | ||
final class BatchSendingsEndpoint extends ResourceEndpoint | ||
{ | ||
use GetEndpointTrait; | ||
use UpdateEndpointTrait; | ||
use CreateEndpointTrait; | ||
|
||
public function __construct(DigiSign $parent) | ||
{ | ||
parent::__construct($parent, '/api/batch-sendings'); | ||
} | ||
|
||
public function items(string $id): BatchSendingsItemsEndpoint | ||
{ | ||
return new BatchSendingsItemsEndpoint($this, $id); | ||
} | ||
} |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,32 @@ | ||
<?php | ||
|
||
declare(strict_types=1); | ||
|
||
namespace DigitalCz\DigiSign\Endpoint; | ||
|
||
use DigitalCz\DigiSign\Resource\BaseResource; | ||
|
||
/** | ||
* @extends ResourceEndpoint<BaseResource> | ||
*/ | ||
final class BatchSendingsItemsEndpoint extends ResourceEndpoint | ||
{ | ||
public function __construct(BatchSendingsEndpoint $parent, string $batchSending) | ||
{ | ||
parent::__construct($parent, '/{id}/items', BaseResource::class, ['id' => $batchSending]); | ||
} | ||
|
||
public function import(string $fileId): BaseResource | ||
{ | ||
return $this->createResource( | ||
$this->postRequest( | ||
'/import', | ||
[ | ||
'json' => [ | ||
'file' => $fileId, | ||
], | ||
], | ||
), | ||
); | ||
} | ||
} |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,34 @@ | ||
<?php | ||
|
||
declare(strict_types=1); | ||
|
||
namespace DigitalCz\DigiSign\Resource; | ||
|
||
use DigitalCz\DigiSign\Resource\Traits\EntityResourceTrait; | ||
Check failure on line 7 in src/Resource/BatchSending.php
|
||
|
||
|
||
class BatchSending extends BaseResource | ||
{ | ||
use EntityResourceTrait; | ||
|
||
public string $id; | ||
|
||
public ?string $name; | ||
|
||
public ?string $envelopeTemplateId; | ||
|
||
public int $itemsWaitingCount; | ||
|
||
public int $itemsSuccessCount; | ||
|
||
public int $itemsFailedCount; | ||
|
||
public int $itemsTotalCount; | ||
|
||
public string $status; | ||
|
||
/** | ||
* @var array<BatchSendingSlug> | ||
*/ | ||
public array $slugs; | ||
} |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,15 @@ | ||
<?php | ||
|
||
declare(strict_types=1); | ||
|
||
namespace DigitalCz\DigiSign\Resource; | ||
|
||
class BatchSendingSlug extends BaseResource | ||
{ | ||
public string $alias; | ||
|
||
/** | ||
* @var array<int, BatchSendingSlug> | ||
*/ | ||
public array $columns; | ||
} |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,33 @@ | ||
<?php | ||
|
||
declare(strict_types=1); | ||
|
||
namespace DigitalCz\DigiSign\Endpoint; | ||
|
||
/** | ||
* @covers \DigitalCz\DigiSign\Endpoint\BatchSendingsEndpoint | ||
*/ | ||
class BatchSendingEndpointTest extends EndpointTestCase | ||
{ | ||
public function testChildren(): void | ||
{ | ||
self::assertDefaultEndpointPath(self::endpoint()->items('foo'), '/api/batch-sendings/foo/items'); | ||
} | ||
|
||
public function testCRUD(): void | ||
{ | ||
self::endpoint()->get('foo'); | ||
self::assertLastRequest('GET', "/api/batch-sendings/foo"); | ||
|
||
self::endpoint()->create([]); | ||
self::assertLastRequest('POST', "/api/batch-sendings"); | ||
|
||
self::endpoint()->update('foo', []); | ||
self::assertLastRequest('PUT', "/api/batch-sendings/foo"); | ||
} | ||
|
||
protected static function endpoint(): BatchSendingsEndpoint | ||
{ | ||
return self::dgs()->batchSendings(); | ||
} | ||
} |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,22 @@ | ||
<?php | ||
|
||
declare(strict_types=1); | ||
|
||
namespace DigitalCz\DigiSign\Endpoint; | ||
|
||
/** | ||
* @covers \DigitalCz\DigiSign\Endpoint\BatchSendingsItemsEndpoint | ||
*/ | ||
class BatchSendingItemsEndpointTest extends EndpointTestCase | ||
{ | ||
public function testImport(): void | ||
{ | ||
self::endpoint()->import('bar'); | ||
self::assertLastRequest('POST', "/api/batch-sendings/foo/items/import", ['file' => 'bar']); | ||
} | ||
|
||
protected static function endpoint(): BatchSendingsItemsEndpoint | ||
{ | ||
return self::dgs()->batchSendings()->items('foo'); | ||
} | ||
} |