mirror of
https://gitlab.com/openlp/website.git
synced 2024-12-22 21:12:50 +00:00
117 lines
3.0 KiB
PHP
117 lines
3.0 KiB
PHP
<?php
|
|
|
|
namespace Stripe;
|
|
|
|
/**
|
|
* Class Source
|
|
*
|
|
* @package Stripe
|
|
*/
|
|
class Source extends ApiResource
|
|
{
|
|
/**
|
|
* @param array|string $id The ID of the source to retrieve, or an options
|
|
* array containing an `id` key.
|
|
* @param array|string|null $opts
|
|
*
|
|
* @return Source
|
|
*/
|
|
public static function retrieve($id, $opts = null)
|
|
{
|
|
return self::_retrieve($id, $opts);
|
|
}
|
|
|
|
/**
|
|
* @param array|null $params
|
|
* @param array|string|null $opts
|
|
*
|
|
* @return Collection of Sources
|
|
*/
|
|
public static function all($params = null, $opts = null)
|
|
{
|
|
return self::_all($params, $opts);
|
|
}
|
|
|
|
/**
|
|
* @param array|null $params
|
|
* @param array|string|null $opts
|
|
*
|
|
* @return Source The created Source.
|
|
*/
|
|
public static function create($params = null, $opts = null)
|
|
{
|
|
return self::_create($params, $opts);
|
|
}
|
|
|
|
/**
|
|
* @param string $id The ID of the source to update.
|
|
* @param array|null $params
|
|
* @param array|string|null $options
|
|
*
|
|
* @return Source The updated source.
|
|
*/
|
|
public static function update($id, $params = null, $options = null)
|
|
{
|
|
return self::_update($id, $params, $options);
|
|
}
|
|
|
|
/**
|
|
* @param array|string|null $opts
|
|
*
|
|
* @return Source The saved source.
|
|
*/
|
|
public function save($opts = null)
|
|
{
|
|
return $this->_save($opts);
|
|
}
|
|
|
|
/**
|
|
* @param array|null $params
|
|
* @param array|string|null $opts
|
|
*
|
|
* @return Source The deleted source.
|
|
*/
|
|
public function delete($params = null, $options = null)
|
|
{
|
|
self::_validateParams($params);
|
|
|
|
$id = $this['id'];
|
|
if (!$id) {
|
|
$class = get_class($this);
|
|
$msg = "Could not determine which URL to request: $class instance "
|
|
. "has invalid ID: $id";
|
|
throw new Error\InvalidRequest($msg, null);
|
|
}
|
|
|
|
if ($this['customer']) {
|
|
$base = Customer::classUrl();
|
|
$parentExtn = urlencode(Util\Util::utf8($this['customer']));
|
|
$extn = urlencode(Util\Util::utf8($id));
|
|
$url = "$base/$parentExtn/sources/$extn";
|
|
|
|
list($response, $opts) = $this->_request('delete', $url, $params, $options);
|
|
$this->refreshFrom($response, $opts);
|
|
return $this;
|
|
} else {
|
|
$message = "Source objects cannot be deleted, they can only be "
|
|
. "detached from customer objects. This source object does not "
|
|
. "appear to be currently attached to a customer object.";
|
|
throw new Error\Api($message);
|
|
}
|
|
}
|
|
|
|
/**
|
|
* @param array|null $params
|
|
* @param array|string|null $options
|
|
*
|
|
* @return BankAccount The verified bank account.
|
|
*/
|
|
public function verify($params = null, $options = null)
|
|
{
|
|
$url = $this->instanceUrl() . '/verify';
|
|
list($response, $opts) = $this->_request('post', $url, $params, $options);
|
|
$this->refreshFrom($response, $opts);
|
|
return $this;
|
|
}
|
|
}
|