1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192 |
- <?php
- namespace Braintree\Result;
- use Braintree\Instance;
- use Braintree\Util;
- /**
- * Braintree Successful Result
- *
- * A Successful Result will be returned from gateway methods when
- * validations pass. It will provide access to the created resource.
- *
- * For example, when creating a customer, Successful will
- * respond to <b>customer</b> like so:
- *
- * <code>
- * $result = Customer::create(array('first_name' => "John"));
- * if ($result->success) {
- * // Successful
- * echo "Created customer {$result->customer->id}";
- * } else {
- * // Error
- * }
- * </code>
- *
- *
- * @package Braintree
- * @subpackage Result
- */
- class Successful extends Instance
- {
- /**
- *
- * @var boolean always true
- */
- public $success = true;
- /**
- *
- * @var string stores the internal name of the object providing access to
- */
- private $_returnObjectNames;
- /**
- * @ignore
- * @param array|null $objsToReturn
- * @param array|null $propertyNames
- */
- public function __construct($objsToReturn = [], $propertyNames = [])
- {
- // Sanitize arguments (preserves backwards compatibility)
- if (!is_array($objsToReturn)) { $objsToReturn = [$objsToReturn]; }
- if (!is_array($propertyNames)) { $propertyNames = [$propertyNames]; }
- $objects = $this->_mapPropertyNamesToObjsToReturn($propertyNames, $objsToReturn);
- $this->_attributes = [];
- $this->_returnObjectNames = [];
- foreach ($objects as $propertyName => $objToReturn) {
- // save the name for indirect access
- array_push($this->_returnObjectNames, $propertyName);
- // create the property!
- $this->$propertyName = $objToReturn;
- }
- }
- /**
- *
- * @ignore
- * @return string string representation of the object's structure
- */
- public function __toString()
- {
- $objects = [];
- foreach ($this->_returnObjectNames as $returnObjectName) {
- array_push($objects, $returnObjectName);
- }
- return __CLASS__ . '[' . implode(', ', $objects) . ']';
- }
- private function _mapPropertyNamesToObjsToReturn($propertyNames, $objsToReturn) {
- if(count($objsToReturn) != count($propertyNames)) {
- $propertyNames = [];
- foreach ($objsToReturn as $obj) {
- array_push($propertyNames, Util::cleanClassName(get_class($obj)));
- }
- }
- return array_combine($propertyNames, $objsToReturn);
- }
- }
- class_alias('Braintree\Result\Successful', 'Braintree_Result_Successful');
|