forked from apoloz/alfa-bank-sdk
47 lines
1.1 KiB
PHP
47 lines
1.1 KiB
PHP
<?php
|
|
|
|
declare(strict_types=1);
|
|
|
|
namespace Apoloz\AlfaBank\Requests\Registries;
|
|
|
|
use Apoloz\AlfaBank\Data\Registries\RegistrySignatureData;
|
|
use Apoloz\AlfaBank\Data\Shared\GeneralStatusData;
|
|
use Saloon\Contracts\Body\HasBody;
|
|
use Saloon\Enums\Method;
|
|
use Saloon\Http\Request;
|
|
use Saloon\Http\Response;
|
|
use Saloon\Traits\Body\HasJsonBody;
|
|
use Spatie\LaravelData\DataCollection;
|
|
|
|
class SignRegistryRequest extends Request implements HasBody
|
|
{
|
|
use HasJsonBody;
|
|
|
|
protected Method $method = Method::POST;
|
|
|
|
public function __construct(
|
|
protected string $registryId,
|
|
/** @var DataCollection<RegistrySignatureData> */
|
|
protected DataCollection $signatures,
|
|
) {}
|
|
|
|
public function resolveEndpoint(): string
|
|
{
|
|
return "/api/jp/v1/registries/{$this->registryId}/signatures";
|
|
}
|
|
|
|
public function createDtoFromResponse(Response $response): GeneralStatusData
|
|
{
|
|
return GeneralStatusData::from([
|
|
'success' => $response->successful(),
|
|
]);
|
|
}
|
|
|
|
protected function defaultBody(): array
|
|
{
|
|
return [
|
|
'digestSignatures' => $this->signatures->toArray(),
|
|
];
|
|
}
|
|
}
|