Skip to content

Commit

Permalink
Get rid of ExternalAccount
Browse files Browse the repository at this point in the history
  • Loading branch information
ob-stripe committed Jan 9, 2018
1 parent a8f8c8c commit 76ad07d
Show file tree
Hide file tree
Showing 12 changed files with 483 additions and 124 deletions.
1 change: 0 additions & 1 deletion init.php
Original file line number Diff line number Diff line change
Expand Up @@ -50,7 +50,6 @@
require(dirname(__FILE__) . '/lib/ApiRequestor.php');
require(dirname(__FILE__) . '/lib/ApiResource.php');
require(dirname(__FILE__) . '/lib/SingletonApiResource.php');
require(dirname(__FILE__) . '/lib/ExternalAccount.php');

// Stripe API Resources
require(dirname(__FILE__) . '/lib/Account.php');
Expand Down
10 changes: 5 additions & 5 deletions lib/Account.php
Original file line number Diff line number Diff line change
Expand Up @@ -120,7 +120,7 @@ public function deauthorize($clientId = null, $opts = null)
* @param array|null $params
* @param array|string|null $opts
*
* @return ExternalAccount
* @return ApiResource
*/
public static function createExternalAccount($id, $params = null, $opts = null)
{
Expand All @@ -133,7 +133,7 @@ public static function createExternalAccount($id, $params = null, $opts = null)
* @param array|null $params
* @param array|string|null $opts
*
* @return ExternalAccount
* @return ApiResource
*/
public static function retrieveExternalAccount($id, $externalAccountId, $params = null, $opts = null)
{
Expand All @@ -146,7 +146,7 @@ public static function retrieveExternalAccount($id, $externalAccountId, $params
* @param array|null $params
* @param array|string|null $opts
*
* @return ExternalAccount
* @return ApiResource
*/
public static function updateExternalAccount($id, $externalAccountId, $params = null, $opts = null)
{
Expand All @@ -159,7 +159,7 @@ public static function updateExternalAccount($id, $externalAccountId, $params =
* @param array|null $params
* @param array|string|null $opts
*
* @return ExternalAccount
* @return ApiResource
*/
public static function deleteExternalAccount($id, $externalAccountId, $params = null, $opts = null)
{
Expand All @@ -171,7 +171,7 @@ public static function deleteExternalAccount($id, $externalAccountId, $params =
* @param array|null $params
* @param array|string|null $opts
*
* @return ExternalAccount
* @return ApiResource
*/
public static function allExternalAccounts($id, $params = null, $opts = null)
{
Expand Down
55 changes: 54 additions & 1 deletion lib/AlipayAccount.php
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,60 @@
*
* @package Stripe
*/
class AlipayAccount extends ExternalAccount
class AlipayAccount extends ApiResource
{
use ApiOperations\Delete;
use ApiOperations\Update;

/**
* @return string The instance URL for this resource. It needs to be special
* cased because it doesn't fit into the standard resource pattern.
*
* @deprecated Please use sources instead.
*/
public function instanceUrl()
{
if ($this['customer']) {
$base = Customer::classUrl();
$parent = $this['customer'];
$path = 'sources';
} else {
$msg = "Alipay accounts cannot be accessed without a customer ID.";
throw new Error\InvalidRequest($msg, null);
}
$parentExtn = urlencode(Util\Util::utf8($parent));
$extn = urlencode(Util\Util::utf8($this['id']));
return "$base/$parentExtn/$path/$extn";
}

/**
* @param array|string $_id
* @param array|string|null $_opts
*
* @throws \Stripe\Error\InvalidRequest
*
* @deprecated Please use sources instead.
*/
public static function retrieve($_id, $_opts = null)
{
$msg = "Alipay accounts cannot be accessed without a customer ID. " .
"Retrieve an Alipay account using \$customer->sources->retrieve('alipay_account_id') instead.";
throw new Error\InvalidRequest($msg, null);
}

/**
* @param string $_id
* @param array|null $_params
* @param array|string|null $_options
*
* @throws \Stripe\Error\InvalidRequest
*
* @deprecated Please use sources instead.
*/
public static function update($_id, $_params = null, $_options = null)
{
$msg = "Alipay accounts cannot be accessed without a customer ID. " .
"Call save() on \$customer->sources->retrieve('alipay_account_id') instead.";
throw new Error\InvalidRequest($msg, null);
}
}
57 changes: 56 additions & 1 deletion lib/BankAccount.php
Original file line number Diff line number Diff line change
Expand Up @@ -7,9 +7,64 @@
*
* @package Stripe
*/
class BankAccount extends ExternalAccount
class BankAccount extends ApiResource
{
use ApiOperations\Delete;
use ApiOperations\Update;

/**
* @return string The instance URL for this resource. It needs to be special
* cased because it doesn't fit into the standard resource pattern.
*/
public function instanceUrl()
{
if ($this['customer']) {
$base = Customer::classUrl();
$parent = $this['customer'];
$path = 'sources';
} elseif ($this['account']) {
$base = Account::classUrl();
$parent = $this['account'];
$path = 'external_accounts';
} else {
$msg = "Bank accounts cannot be accessed without a customer ID or account ID.";
throw new Error\InvalidRequest($msg, null);
}
$parentExtn = urlencode(Util\Util::utf8($parent));
$extn = urlencode(Util\Util::utf8($this['id']));
return "$base/$parentExtn/$path/$extn";
}

/**
* @param array|string $_id
* @param array|string|null $_opts
*
* @throws \Stripe\Error\InvalidRequest
*/
public static function retrieve($_id, $_opts = null)
{
$msg = "Bank accounts cannot be accessed without a customer ID or account ID. " .
"Retrieve a bank account using \$customer->sources->retrieve('bank_account_id') or " .
"\$account->external_accounts->retrieve('bank_account_id') instead.";
throw new Error\InvalidRequest($msg, null);
}

/**
* @param string $_id
* @param array|null $_params
* @param array|string|null $_options
*
* @throws \Stripe\Error\InvalidRequest
*/
public static function update($_id, $_params = null, $_options = null)
{
$msg = "Bank accounts cannot be accessed without a customer ID or account ID. " .
"Call save() on \$customer->sources->retrieve('bank_account_id') or " .
"\$account->external_accounts->retrieve('bank_account_id') instead.";
throw new Error\InvalidRequest($msg, null);
}

/**
* @param array|null $params
* @param array|string|null $options
*
Expand Down
17 changes: 9 additions & 8 deletions lib/BitcoinReceiver.php
Original file line number Diff line number Diff line change
Expand Up @@ -7,10 +7,9 @@
* @deprecated Please use sources instead.
*/
class BitcoinReceiver extends ExternalAccount
class BitcoinReceiver extends ApiResource
{
use ApiOperations\All;
use ApiOperations\Create;
use ApiOperations\Retrieve;

/**
Expand All @@ -32,14 +31,16 @@ public static function classUrl()
*/
public function instanceUrl()
{
$result = parent::instanceUrl();
if ($result) {
return $result;
if ($this['customer']) {
$base = Customer::classUrl();
$parent = $this['customer'];
$path = 'sources';
$parentExtn = urlencode(Util\Util::utf8($parent));
$extn = urlencode(Util\Util::utf8($this['id']));
return "$base/$parentExtn/$path/$extn";
} else {
$id = $this['id'];
$id = Util\Util::utf8($id);
$extn = urlencode($id);
$base = BitcoinReceiver::classUrl();
$extn = urlencode(Util\Util::utf8($this['id']));
return "$base/$extn";
}
}
Expand Down
57 changes: 56 additions & 1 deletion lib/Card.php
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,62 @@
*
* @package Stripe
*/
class Card extends ExternalAccount
class Card extends ApiResource
{
use ApiOperations\Delete;
use ApiOperations\Update;

public function instanceUrl()
{
if ($this['customer']) {
$base = Customer::classUrl();
$parent = $this['customer'];
$path = 'sources';
} elseif ($this['account']) {
$base = Account::classUrl();
$parent = $this['account'];
$path = 'external_accounts';
} elseif ($this['recipient']) {
$base = Recipient::classUrl();
$parent = $this['recipient'];
$path = 'cards';
} else {
$msg = "Cards cannot be accessed without a customer ID, account ID or recipient ID.";
throw new Error\InvalidRequest($msg, null);
}
$parentExtn = urlencode(Util\Util::utf8($parent));
$extn = urlencode(Util\Util::utf8($this['id']));
return "$base/$parentExtn/$path/$extn";
}

/**
* @param array|string $_id
* @param array|string|null $_opts
*
* @throws \Stripe\Error\InvalidRequest
*/
public static function retrieve($_id, $_opts = null)
{
$msg = "Cards cannot be accessed without a customer, recipient or account ID. " .
"Retrieve a card using \$customer->sources->retrieve('card_id'), " .
"\$recipient->cards->retrieve('card_id'), or";
"\$account->external_accounts->retrieve('card_id') instead.";
throw new Error\InvalidRequest($msg, null);
}

/**
* @param string $_id
* @param array|null $_params
* @param array|string|null $_options
*
* @throws \Stripe\Error\InvalidRequest
*/
public static function update($_id, $_params = null, $_options = null)
{
$msg = "Cards cannot be accessed without a customer, recipient or account ID. " .
"Call save() on \$customer->sources->retrieve('card_id'), " .
"\$recipient->cards->retrieve('card_id'), or";
"\$account->external_accounts->retrieve('card_id') instead.";
throw new Error\InvalidRequest($msg, null);
}
}
10 changes: 5 additions & 5 deletions lib/Customer.php
Original file line number Diff line number Diff line change
Expand Up @@ -139,7 +139,7 @@ public function deleteDiscount()
* @param array|null $params
* @param array|string|null $opts
*
* @return ExternalAccount
* @return ApiResource
*/
public static function createSource($id, $params = null, $opts = null)
{
Expand All @@ -152,7 +152,7 @@ public static function createSource($id, $params = null, $opts = null)
* @param array|null $params
* @param array|string|null $opts
*
* @return ExternalAccount
* @return ApiResource
*/
public static function retrieveSource($id, $sourceId, $params = null, $opts = null)
{
Expand All @@ -165,7 +165,7 @@ public static function retrieveSource($id, $sourceId, $params = null, $opts = nu
* @param array|null $params
* @param array|string|null $opts
*
* @return ExternalAccount
* @return ApiResource
*/
public static function updateSource($id, $sourceId, $params = null, $opts = null)
{
Expand All @@ -178,7 +178,7 @@ public static function updateSource($id, $sourceId, $params = null, $opts = null
* @param array|null $params
* @param array|string|null $opts
*
* @return ExternalAccount
* @return ApiResource
*/
public static function deleteSource($id, $sourceId, $params = null, $opts = null)
{
Expand All @@ -190,7 +190,7 @@ public static function deleteSource($id, $sourceId, $params = null, $opts = null
* @param array|null $params
* @param array|string|null $opts
*
* @return ExternalAccount
* @return ApiResource
*/
public static function allSources($id, $params = null, $opts = null)
{
Expand Down
Loading

0 comments on commit 76ad07d

Please sign in to comment.