Skip to content

Commit a7398fe

Browse files
committed
refactor: further hid options resolver
1 parent a513e27 commit a7398fe

6 files changed

Lines changed: 34 additions & 20 deletions

File tree

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@ $flutterwave = new FlutterwaveClient(new Options([
4545
]));
4646

4747
$response = $flutterwave
48-
->plans()
48+
->plan()
4949
->create(
5050
new CreatePlanOptions([
5151
'name' => 'Test Plan',

src/API/Plan.php

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -25,12 +25,14 @@ public function __construct(Client $client)
2525
/**
2626
* Creates a new plan
2727
*
28-
* @param CreatePlanOptions $options
28+
* @param array $params
2929
*
3030
* @return array
3131
*/
32-
public function create(CreatePlanOptions $options): array
32+
public function create(array $params): array
3333
{
34+
$options = new CreatePlanOptions($params);
35+
3436
$response = $this->httpClient->post('/payment-plans', [
3537
'json' => $options->all(),
3638
]);
@@ -68,12 +70,14 @@ public function find(int $id): array
6870
* Updates a plan
6971
*
7072
* @param int $id
71-
* @param UpdatePlanOptions $options
73+
* @param array $params
7274
*
7375
* @return array
7476
*/
75-
public function update(int $id, UpdatePlanOptions $options): array
77+
public function update(int $id, array $params): array
7678
{
79+
$options = new UpdatePlanOptions($params);
80+
7781
$response = $this->httpClient->put("/payment-plans/{$id}", [
7882
'json' => $options->all(),
7983
]);

src/API/Subscription.php

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -11,14 +11,16 @@ final class Subscription extends ApiAbstract
1111
/**
1212
* Retrieves all plans
1313
*
14-
* @param SubscriptionQueryParams $queryParams
14+
* @param array $params
1515
*
1616
* @return array
1717
*/
18-
public function all(SubscriptionQueryParams $queryParams): array
18+
public function all(array $params): array
1919
{
20+
$options = new SubscriptionQueryParams($params);
21+
2022
$response = $this->httpClient->get('/subscriptions', [
21-
'query' => $queryParams->all()
23+
'query' => $options->all()
2224
]);
2325

2426
return ResponseMediator::getContent($response);

src/API/Transaction.php

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -12,14 +12,16 @@ final class Transaction extends ApiAbstract
1212
/**
1313
* Get all transactions
1414
*
15-
* @param TransactionQueryParams $params
15+
* @param array $params
1616
*
1717
* @return array
1818
*/
19-
public function all(TransactionQueryParams $params): array
19+
public function all(array $params): array
2020
{
21+
$options = new TransactionQueryParams($params);
22+
2123
$response = $this->httpClient->get('/transactions', [
22-
'query' => $params->all(),
24+
'query' => $options->all(),
2325
]);
2426

2527
return ResponseMediator::getContent($response);
@@ -28,12 +30,14 @@ public function all(TransactionQueryParams $params): array
2830
/**
2931
* Get fee of a transaction about to happen.
3032
*
31-
* @param TransactionFeeOptions $options
33+
* @param array $params
3234
*
3335
* @return array
3436
*/
35-
public function fee(TransactionFeeOptions $options): array
37+
public function fee(array $params): array
3638
{
39+
$options = new TransactionFeeOptions($params);
40+
3741
$response = $this->httpClient->get('/transactions/fee', [
3842
'query' => $options->all()
3943
]);

src/Client.php

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -25,13 +25,13 @@ final class Client
2525
/**
2626
* Intantiate the client class
2727
*
28-
* @param Options $options
28+
* @param array $opts
2929
*
3030
* @return void
3131
*/
32-
public function __construct(Options $options = null)
32+
public function __construct(array $opts = [])
3333
{
34-
$options = $options ?? new Options();
34+
$options = new Options($opts);
3535

3636
$this->apiVersion = $options->getApiVersion();
3737

src/Concerns/CanPerformTokenizedCharges.php

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -11,12 +11,14 @@ trait CanPerformTokenizedCharges
1111
/**
1212
* Charge with token
1313
*
14-
* @param ChargeWithTokenOptions $options
14+
* @param array $params
1515
*
1616
* @return array
1717
*/
18-
public function withToken(ChargeWithTokenOptions $options): array
18+
public function withToken(array $params): array
1919
{
20+
$options = new ChargeWithTokenOptions($params);
21+
2022
$response = $this->httpClient->post('/tokenized-charges', [
2123
'json' => $options->all(),
2224
]);
@@ -28,12 +30,14 @@ public function withToken(ChargeWithTokenOptions $options): array
2830
* Update token details
2931
*
3032
* @param string $token
31-
* @param UpdateCustomerTokenOptions $options
33+
* @param array $params
3234
*
3335
* @return array
3436
*/
35-
public function updateCustomerToken(string $token, UpdateCustomerTokenOptions $options): array
37+
public function updateCustomerToken(string $token, array $params): array
3638
{
39+
$options = new UpdateCustomerTokenOptions($params);
40+
3741
$response = $this->httpClient->put("/tokens/{$token}", [
3842
'json' => $options->all(),
3943
]);

0 commit comments

Comments
 (0)