CoinbaseAccount.php 2.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110
  1. <?php
  2. namespace Braintree;
  3. /**
  4. * Braintree CoinbaseAccount module
  5. *
  6. * @package Braintree
  7. * @category Resources
  8. */
  9. /**
  10. * Manages Braintree CoinbaseAccounts
  11. *
  12. * <b>== More information ==</b>
  13. *
  14. *
  15. * @package Braintree
  16. * @category Resources
  17. *
  18. * @property-read string $customerId
  19. * @property-read string $token
  20. * @property-read string $userId
  21. * @property-read string $userName
  22. * @property-read string $userEmail
  23. */
  24. class CoinbaseAccount extends Base
  25. {
  26. /**
  27. * factory method: returns an instance of CoinbaseAccount
  28. * to the requesting method, with populated properties
  29. *
  30. * @ignore
  31. * @return CoinbaseAccount
  32. */
  33. public static function factory($attributes)
  34. {
  35. $instance = new self();
  36. $instance->_initialize($attributes);
  37. return $instance;
  38. }
  39. /* instance methods */
  40. /**
  41. * returns false if default is null or false
  42. *
  43. * @return boolean
  44. */
  45. public function isDefault()
  46. {
  47. return $this->default;
  48. }
  49. /**
  50. * sets instance properties from an array of values
  51. *
  52. * @access protected
  53. * @param array $coinbaseAccountAttribs array of coinbaseAccount data
  54. * @return void
  55. */
  56. protected function _initialize($coinbaseAccountAttribs)
  57. {
  58. // set the attributes
  59. $this->_attributes = $coinbaseAccountAttribs;
  60. $subscriptionArray = [];
  61. if (isset($coinbaseAccountAttribs['subscriptions'])) {
  62. foreach ($coinbaseAccountAttribs['subscriptions'] AS $subscription) {
  63. $subscriptionArray[] = Subscription::factory($subscription);
  64. }
  65. }
  66. $this->_set('subscriptions', $subscriptionArray);
  67. }
  68. /**
  69. * create a printable representation of the object as:
  70. * ClassName[property=value, property=value]
  71. * @return string
  72. */
  73. public function __toString()
  74. {
  75. return __CLASS__ . '[' .
  76. Util::attributesToString($this->_attributes) .']';
  77. }
  78. // static methods redirecting to gateway
  79. public static function find($token)
  80. {
  81. return Configuration::gateway()->coinbaseAccount()->find($token);
  82. }
  83. public static function update($token, $attributes)
  84. {
  85. return Configuration::gateway()->coinbaseAccount()->update($token, $attributes);
  86. }
  87. public static function delete($token)
  88. {
  89. return Configuration::gateway()->coinbaseAccount()->delete($token);
  90. }
  91. public static function sale($token, $transactionAttribs)
  92. {
  93. return Configuration::gateway()->coinbaseAccount()->sale($token, $transactionAttribs);
  94. }
  95. }
  96. class_alias('Braintree\CoinbaseAccount', 'Braintree_CoinbaseAccount');