Skip to content

Commit fa91533

Browse files
committed
Support all parameters for list operations
1 parent e171cb6 commit fa91533

37 files changed

+808
-232
lines changed

src/Api/AbstractApi.php

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010
use JMS\Serializer\Serializer;
1111
use JMS\Serializer\SerializerBuilder;
1212
use Stripe\Client;
13+
use Stripe\Request\ListRequest;
1314

1415
abstract class AbstractApi
1516
{
@@ -33,4 +34,17 @@ public function __construct(Client $client)
3334
$this->client = $client;
3435
$this->serializer = SerializerBuilder::create()->build();
3536
}
37+
38+
/**
39+
* Convenience method to perform a null check on the optional list request parameter
40+
* @param ListRequest $request
41+
* @return array
42+
*/
43+
protected function listRequestToParams(ListRequest $request = null)
44+
{
45+
if (!is_null($request)) {
46+
return $request->toParams();
47+
}
48+
return array();
49+
}
3650
}

src/Api/ApplicationFees.php

Lines changed: 4 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88
namespace Stripe\Api;
99

1010

11+
use Stripe\Request\ApplicationFees\ListApplicationFeesRequest;
1112
use Stripe\Response\ApplicationFees\ApplicationFeeResponse;
1213
use Stripe\Response\ApplicationFees\ListApplicationFeesResponse;
1314

@@ -42,26 +43,13 @@ public function refundApplicationFee($applicationFeeId, $amount = null)
4243
}
4344

4445
/**
45-
* @param string $charge
46-
* @param string|array $created
47-
* @param int $limit
48-
* @param string $startingAfter
46+
* @param ListApplicationFeesRequest $request
4947
* @return ListApplicationFeesResponse
5048
* @link https://stripe.com/docs/api#list_application_fees
5149
*/
52-
public function listApplicationFees($charge = null, $created = null, $limit = 10, $startingAfter = null)
50+
public function listApplicationFees(ListApplicationFeesRequest $request = null)
5351
{
54-
$request = array('limit' => $limit);
55-
if (!is_null($charge)) {
56-
$request['charge'] = $charge;
57-
}
58-
if (!is_null($created)) {
59-
$request['created'] = $created;
60-
}
61-
if (!is_null($startingAfter)) {
62-
$request['starting_after'] = $startingAfter;
63-
}
64-
return $this->client->get($this->buildUrl(), self::LIST_APPLICATION_FEES_RESPONSE_CLASS, $request);
52+
return $this->client->get($this->buildUrl(), self::LIST_APPLICATION_FEES_RESPONSE_CLASS, null, $this->listRequestToParams($request));
6553
}
6654

6755
/**

src/Api/Balance.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@ public function getBalanceTransaction($transactionId)
4545
*/
4646
public function listBalanceHistory(ListBalanceHistoryRequest $request = null)
4747
{
48-
return $this->client->get('balance/history', self::LIST_BALANCE_TRANSACTIONS_RESPONSE_CLASS, $request);
48+
return $this->client->get('balance/history', self::LIST_BALANCE_TRANSACTIONS_RESPONSE_CLASS, null, $this->listRequestToParams($request));
4949
}
5050

5151
/**

src/Api/Cards.php

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@
1515
use Stripe\Exception\InvalidExpiryYearException;
1616
use Stripe\Request\Cards\CreateCardRequest;
1717
use Stripe\Request\Cards\UpdateCardRequest;
18+
use Stripe\Request\ListRequest;
1819
use Stripe\Response\Cards\CardResponse;
1920
use Stripe\Response\Cards\ListCardsResponse;
2021
use Stripe\Response\DeleteResponse;
@@ -101,14 +102,13 @@ public function deleteCard($customerId, $cardId)
101102

102103
/**
103104
* @param string $customerId
104-
* @param int $count
105-
* @param int $offset
105+
* @param ListRequest $request
106106
* @return ListCardsResponse
107107
* @link https://stripe.com/docs/api/curl#list_cards
108108
*/
109-
public function listCards($customerId, $count = 10, $offset = 0)
109+
public function listCards($customerId, ListRequest $request = null)
110110
{
111-
return $this->client->get($this->buildUrl($customerId), self::LIST_CARDS_RESPONSE_CLASS, null, array('count' => $count, 'offset' => $offset));
111+
return $this->client->get($this->buildUrl($customerId), self::LIST_CARDS_RESPONSE_CLASS, null, $this->listRequestToParams($request));
112112
}
113113

114114
/**

src/Api/Charges.php

Lines changed: 4 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99

1010

1111
use Stripe\Request\Charges\CreateChargeRequest;
12+
use Stripe\Request\ListRequest;
1213
use Stripe\Response\Charges\ChargeResponse;
1314
use Stripe\Response\Charges\ListChargesResponse;
1415

@@ -95,26 +96,13 @@ public function captureCharge($chargeId, $amount = null, $applicationFee = null)
9596
}
9697

9798
/**
98-
* @param int $count
99-
* @param int $offset
100-
* @param string|array $created
101-
* @param string $customerId
99+
* @param ListRequest $request
102100
* @return ListChargesResponse
103101
* @link https://stripe.com/docs/api#list_charges
104102
*/
105-
public function listCharges($count = 10, $offset = 0, $created = null, $customerId = null)
103+
public function listCharges(ListRequest $request = null)
106104
{
107-
$request = array(
108-
'count' => $count,
109-
'offset' => $offset
110-
);
111-
if (!is_null($created)) {
112-
$request['created'] = $created;
113-
}
114-
if (!is_null($customerId)) {
115-
$request['customer'] = $customerId;
116-
}
117-
return $this->client->get($this->buildUrl(), self::LIST_CHARGES_RESPONSE_CLASS, null, $request);
105+
return $this->client->get($this->buildUrl(), self::LIST_CHARGES_RESPONSE_CLASS, null, $this->listRequestToParams($request));
118106
}
119107

120108
/**

src/Api/Coupons.php

Lines changed: 4 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99

1010

1111
use Stripe\Request\Coupons\CreateCouponRequest;
12+
use Stripe\Request\ListRequest;
1213
use Stripe\Response\Coupons\CouponResponse;
1314
use Stripe\Response\Coupons\ListCouponsResponse;
1415
use Stripe\Response\DeleteResponse;
@@ -49,20 +50,13 @@ public function deleteCoupon($couponId)
4950
}
5051

5152
/**
52-
* @param int $limit
53-
* @param string $startingAfter
53+
* @param ListRequest $request
5454
* @return ListCouponsResponse
5555
* @link https://stripe.com/docs/api#list_coupons
5656
*/
57-
public function listCoupons($limit = 10, $startingAfter = null)
57+
public function listCoupons(ListRequest $request = null)
5858
{
59-
$request = array(
60-
'limit' => $limit
61-
);
62-
if (!is_null($startingAfter)) {
63-
$request['starting_after'] = $startingAfter;
64-
}
65-
return $this->client->get($this->buildUrl(), self::LIST_COUPONS_RESPONSE_CLASS, null, $request);
59+
return $this->client->get($this->buildUrl(), self::LIST_COUPONS_RESPONSE_CLASS, null, $this->listRequestToParams($request));
6660
}
6761

6862
/**

src/Api/Customers.php

Lines changed: 4 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88
namespace Stripe\Api;
99

1010

11+
use Stripe\Request\ListRequest;
1112
use Stripe\Request\Customers\CreateCustomerRequest;
1213
use Stripe\Request\Customers\UpdateCustomerRequest;
1314
use Stripe\Response\Customers\CustomerResponse;
@@ -61,22 +62,13 @@ public function deleteCustomer($customerId)
6162
}
6263

6364
/**
64-
* @param int $count
65-
* @param int $offset
66-
* @param string|array $created
65+
* @param ListRequest $request
6766
* @return ListCustomersResponse
6867
* @link https://stripe.com/docs/api/curl#list_customers
6968
*/
70-
public function listCustomers($count = 10, $offset = 0, $created = null)
69+
public function listCustomers(ListRequest $request = null)
7170
{
72-
$params = array(
73-
'count' => $count,
74-
'offset' => $offset
75-
);
76-
if (!is_null($created)) {
77-
$params['created'] = $created;
78-
}
79-
return $this->client->get('customers', self::LIST_CUSTOMERS_RESPONSE_CLASS, null, $params);
71+
return $this->client->get('customers', self::LIST_CUSTOMERS_RESPONSE_CLASS, null, $this->listRequestToParams($request));
8072
}
8173

8274
/**

src/Api/Events.php

Lines changed: 4 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88
namespace Stripe\Api;
99

1010

11+
use Stripe\Request\Events\ListEventsRequest;
1112
use Stripe\Response\Events\EventResponse;
1213
use Stripe\Response\Events\ListEventsResponse;
1314

@@ -27,26 +28,13 @@ public function getEvent($eventId)
2728
}
2829

2930
/**
30-
* @param string|array $created
31-
* @param string $type
32-
* @param int $limit
33-
* @param string $startingAfter
31+
* @param ListEventsRequest $request
3432
* @return ListEventsResponse
3533
* @link https://stripe.com/docs/api#list_events
3634
*/
37-
public function listEvents($created = null, $type = null, $limit = 10, $startingAfter = null)
35+
public function listEvents(ListEventsRequest $request = null)
3836
{
39-
$request = array('limit' => $limit);
40-
if (!is_null($created)) {
41-
$request['created'] = $created;
42-
}
43-
if (!is_null($type)) {
44-
$request['type'] = $type;
45-
}
46-
if (!is_null($startingAfter)) {
47-
$request['starting_after'] = $startingAfter;
48-
}
49-
return $this->client->get($this->buildUrl(), self::LIST_EVENTS_RESPONSE_CLASS, null, $request);
37+
return $this->client->get($this->buildUrl(), self::LIST_EVENTS_RESPONSE_CLASS, null, $this->listRequestToParams($request));
5038
}
5139

5240
/**

src/Api/InvoiceItems.php

Lines changed: 4 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99

1010

1111
use Stripe\Request\InvoiceItems\CreateInvoiceItemRequest;
12+
use Stripe\Request\InvoiceItems\ListInvoiceItemsRequest;
1213
use Stripe\Response\DeleteResponse;
1314
use Stripe\Response\InvoiceItems\InvoiceItemResponse;
1415
use Stripe\Response\InvoiceItems\ListInvoiceItemsResponse;
@@ -72,30 +73,13 @@ public function deleteInvoiceItem($invoiceItemId)
7273
}
7374

7475
/**
75-
* @param int $count
76-
* @param int $offset
77-
* @param string|array $created
78-
* @param string $customerId
79-
* @param string $startingAfter
76+
* @param ListInvoiceItemsRequest $request
8077
* @return ListInvoiceItemsResponse
8178
* @link https://stripe.com/docs/api#list_invoiceitems
8279
*/
83-
public function listInvoiceItems($count = 10, $offset = 0, $created = null, $customerId = null, $startingAfter = null)
80+
public function listInvoiceItems(ListInvoiceItemsRequest $request = null)
8481
{
85-
$request = array(
86-
'count' => $count,
87-
'offset' => $offset
88-
);
89-
if (!is_null($created)) {
90-
$request['created'] = $created;
91-
}
92-
if (!is_null($customerId)) {
93-
$request['customer'] = $customerId;
94-
}
95-
if (!is_null($startingAfter)) {
96-
$request['starting_after'] = $startingAfter;
97-
}
98-
return $this->client->get($this->buildUrl(), self::LIST_INVOICE_ITEMS_RESPONSE_CLASS, null, $request);
82+
return $this->client->get($this->buildUrl(), self::LIST_INVOICE_ITEMS_RESPONSE_CLASS, null, $this->listRequestToParams($request));
9983
}
10084

10185
/**

src/Api/Invoices.php

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99

1010

1111
use Stripe\Request\Invoices\CreateInvoiceRequest;
12+
use Stripe\Request\ListRequest;
1213
use Stripe\Response\Invoices\InvoiceResponse;
1314
use Stripe\Response\Invoices\ListInvoicesResponse;
1415
use Stripe\Response\Invoices\ListLineItemsResponse;
@@ -75,14 +76,13 @@ public function payInvoice($invoiceId)
7576
}
7677

7778
/**
78-
* @param int $count
79-
* @param int $offset
79+
* @param ListRequest $request
8080
* @return ListInvoicesResponse
8181
* @link https://stripe.com/docs/api/curl#list_plans
8282
*/
83-
public function listInvoices($count = 10, $offset = 0)
83+
public function listInvoices(ListRequest $request = null)
8484
{
85-
return $this->client->get('invoices', 'Stripe\Response\Invoices\ListInvoicesResponse', null, array('count' => $count, 'offset' => $offset));
85+
return $this->client->get('invoices', 'Stripe\Response\Invoices\ListInvoicesResponse', null, $this->listRequestToParams($request));
8686
}
8787

8888
/**

0 commit comments

Comments
 (0)