52 lines
1.5 KiB
PHP
Executable file
52 lines
1.5 KiB
PHP
Executable file
<?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
|
|
*/
|
|
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;
|
|
}
|
|
}
|