You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
57 lines
1.6 KiB
57 lines
1.6 KiB
1 year ago
|
<?php
|
||
|
|
||
|
namespace Stripe\ApiOperations;
|
||
|
|
||
|
/**
|
||
|
* Trait for updatable resources. Adds an `update()` static method and a
|
||
|
* `save()` method to the class.
|
||
|
*
|
||
|
* This trait should only be applied to classes that derive from StripeObject.
|
||
|
*/
|
||
|
trait Update
|
||
|
{
|
||
|
/**
|
||
|
* @param string $id the ID of the resource to update
|
||
|
* @param null|array $params
|
||
|
* @param null|array|string $opts
|
||
|
*
|
||
|
* @throws \Stripe\Exception\ApiErrorException if the request fails
|
||
|
*
|
||
|
* @return static the updated resource
|
||
|
*/
|
||
|
public static function update($id, $params = null, $opts = null)
|
||
|
{
|
||
|
self::_validateParams($params);
|
||
|
$url = static::resourceUrl($id);
|
||
|
|
||
|
list($response, $opts) = static::_staticRequest('post', $url, $params, $opts);
|
||
|
$obj = \Stripe\Util\Util::convertToStripeObject($response->json, $opts);
|
||
|
$obj->setLastResponse($response);
|
||
|
|
||
|
return $obj;
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* @param null|array|string $opts
|
||
|
*
|
||
|
* @throws \Stripe\Exception\ApiErrorException if the request fails
|
||
|
*
|
||
|
* @return static the saved resource
|
||
|
*
|
||
|
* @deprecated The `save` method is deprecated and will be removed in a
|
||
|
* future major version of the library. Use the static method `update`
|
||
|
* on the resource instead.
|
||
|
*/
|
||
|
public function save($opts = null)
|
||
|
{
|
||
|
$params = $this->serializeParameters();
|
||
|
if (\count($params) > 0) {
|
||
|
$url = $this->instanceUrl();
|
||
|
list($response, $opts) = $this->_request('post', $url, $params, $opts);
|
||
|
$this->refreshFrom($response, $opts);
|
||
|
}
|
||
|
|
||
|
return $this;
|
||
|
}
|
||
|
}
|