Skip to content

Commit

Permalink
FEATURE: handle api request to get current balances
Browse files Browse the repository at this point in the history
  • Loading branch information
vinothkannans committed Dec 5, 2024
1 parent d3bb32b commit f14aa19
Show file tree
Hide file tree
Showing 6 changed files with 74 additions and 2 deletions.
15 changes: 15 additions & 0 deletions src/Client.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
<?php

namespace Vinkas\Airwallex;

use Vinkas\Airwallex\Traits\HandlesApi;

class Client
{
use HandlesApi;

public function getConnector(): Connector
{
return new Connector();
}
}
10 changes: 10 additions & 0 deletions src/Connector.php
Original file line number Diff line number Diff line change
Expand Up @@ -39,4 +39,14 @@ public function setToken(string $token): void
{
$_ENV[static::TOKEN_KEY] = $token;
}

public function getClientId(): string
{
return $_ENV['AIRWALLEX_CLIENT_ID'];
}

public function getApiKey(): string
{
return $_ENV['AIRWALLEX_API_KEY'];
}
}
7 changes: 5 additions & 2 deletions src/Http/Authentication/Authenticator.php
Original file line number Diff line number Diff line change
Expand Up @@ -9,8 +9,11 @@ class Authenticator implements AuthenticatorContract
{
public function set(PendingRequest $pendingRequest): void
{
$pendingRequest->headers()->add('x-client-id', $_ENV['AIRWALLEX_CLIENT_ID']);
$pendingRequest->headers()->add('x-api-key', $_ENV['AIRWALLEX_API_KEY']);
/** @phpstan-var \Vinkas\Airwallex\Connector $connector */
$connector = $pendingRequest->getConnector();

$pendingRequest->headers()->add('x-client-id', $connector->getClientId());
$pendingRequest->headers()->add('x-api-key', $connector->getApiKey());
}
}

16 changes: 16 additions & 0 deletions src/Http/Balances/CurrentRequest.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
<?php

namespace Vinkas\Airwallex\Http\Balances;

use Saloon\Enums\Method;
use Saloon\Http\Request;

class CurrentRequest extends Request
{
protected Method $method = Method::GET;

public function resolveEndpoint(): string
{
return 'balances/current';
}
}
15 changes: 15 additions & 0 deletions src/Http/Resources/BalancesResource.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
<?php

namespace Vinkas\Airwallex\Http\Resources;

use Saloon\Http\BaseResource;
use Saloon\Http\Response;
use Vinkas\Airwallex\Http\Balances\CurrentRequest;

class BalancesResource extends BaseResource
{
public function getCurrent(): Response
{
return $this->connector->send(new CurrentRequest());
}
}
13 changes: 13 additions & 0 deletions src/Traits/HandlesApi.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
<?php

namespace Vinkas\Airwallex\Traits;

use Vinkas\Airwallex\Http\Resources\BalancesResource;

trait HandlesApi
{
public function getBalances(): BalancesResource
{
return new BalancesResource($this->getConnector());
}
}

0 comments on commit f14aa19

Please sign in to comment.