4 Commits

3 changed files with 21 additions and 17 deletions

View File

@@ -23,7 +23,7 @@ class UpdateRequisiteRequest extends Request implements HasBody
{
use HasJsonBody;
protected Method $method = Method::PUT;
protected Method $method = Method::PATCH;
public function __construct(
protected string $beneficiaryId,

View File

@@ -4,17 +4,13 @@ declare(strict_types=1);
namespace Apoloz\AlfaBank\Requests\NominalAccounts\Payouts;
use Apoloz\AlfaBank\Data\Shared\ResultResponseData;
use Saloon\Contracts\Body\HasBody;
use Apoloz\AlfaBank\Data\NominalAccounts\Payouts\PayoffResponseData;
use Saloon\Enums\Method;
use Saloon\Http\Request;
use Saloon\Http\Response;
use Saloon\Traits\Body\HasJsonBody;
class PayoffAcceptRequest extends Request implements HasBody
class PayoffAcceptRequest extends Request
{
use HasJsonBody;
protected Method $method = Method::PATCH;
public function __construct(
@@ -24,18 +20,13 @@ class PayoffAcceptRequest extends Request implements HasBody
public function resolveEndpoint(): string
{
return "/api/na/jp/v1/payoffs/{$this->payoffId}/accept";
$query = http_build_query(['accept' => $this->accept ? 'true' : 'false']);
return "/api/na/jp/v1/payoffs/{$this->payoffId}/accept?{$query}";
}
public function createDtoFromResponse(Response $response): ResultResponseData
public function createDtoFromResponse(Response $response): PayoffResponseData
{
return ResultResponseData::from($response->json());
}
protected function defaultBody(): array
{
return [
'accept' => $this->accept,
];
return PayoffResponseData::from($response->json());
}
}

View File

@@ -5,7 +5,9 @@ use Apoloz\AlfaBank\Core\AlfaConfig;
use Apoloz\AlfaBank\Data\NominalAccounts\Beneficiaries\AddressData;
use Apoloz\AlfaBank\Data\NominalAccounts\Beneficiaries\CreateBeneficiaryRequestData;
use Apoloz\AlfaBank\Requests\NominalAccounts\Beneficiaries\CreateBeneficiaryRequest;
use Apoloz\AlfaBank\Requests\NominalAccounts\Beneficiaries\Requisites\UpdateRequisiteRequest;
use Apoloz\AlfaBank\Services\OpenSslCmsSigner;
use Saloon\Enums\Method;
use Saloon\Http\Faking\MockResponse;
use Spatie\LaravelData\DataCollection;
@@ -58,3 +60,14 @@ test('can create a beneficiary with automatic signing', function (): void {
expect($response->status())->toBe(202)
->and($response->dto()->requestId)->toBe('req-123');
});
test('update requisite request uses PATCH', function (): void {
$request = new UpdateRequisiteRequest(
beneficiaryId: 'ben-1',
requisiteId: 'req-1',
data: ['phoneNumber' => '79031234567'],
);
expect($request->getMethod())->toBe(Method::PATCH)
->and($request->resolveEndpoint())->toBe('/api/na/jp/v1/beneficiaries/ben-1/requisites/req-1');
});