Files
kulakpos_web/vendor/fedapay/fedapay-php/lib/Resource.php

117 lines
2.6 KiB
PHP
Raw Normal View History

2026-03-30 14:54:57 +07:00
<?php
namespace FedaPay;
use FedaPay\Util\Util;
use FedaPay\Util\Inflector;
/**
* Class Resource
*
* @package FedaPay
*/
2026-04-18 20:32:18 +07:00
class Resource extends FedaPayObject
2026-03-30 14:54:57 +07:00
{
use ApiOperations\Request;
/**
* @var FedaPay\Requestor
*/
protected static $requestor;
/**
* Set requestor
* @param FedaPay\Requestor $requestor
*/
public static function setRequestor(Requestor $requestor)
{
self::$requestor = $requestor;
}
/**
* Return the requestor
* @return FedaPay\Requestor
*/
public static function getRequestor()
{
if (self::$requestor) {
return self::$requestor;
}
self::$requestor = new Requestor;
return self::$requestor;
}
public static function className()
{
$class = get_called_class();
// Useful for namespaces: Foo\Charge
if ($postfixNamespaces = strrchr($class, '\\')) {
$class = substr($postfixNamespaces, 1);
}
// Useful for underscored 'namespaces': Foo_Charge
if ($postfixFakeNamespaces = strrchr($class, '')) {
$class = $postfixFakeNamespaces;
}
if (substr($class, 0, strlen('FedaPay')) == 'FedaPay') {
$class = substr($class, strlen('FedaPay'));
}
$class = str_replace('_', '', $class);
$name = urlencode($class);
$name = strtolower($name);
return $name;
}
/**
* @return string The endpoint URL for the given class.
*/
public static function classPath()
{
$base = static::className();
$plurial = Inflector::pluralize($base);
return "/$plurial";
}
/**
* @return string The instance endpoint URL for the given class.
*/
public static function resourcePath($id)
{
if ($id === null) {
$class = get_called_class();
$message = 'Could not determine which URL to request: '
. "$class instance has invalid ID: $id";
throw new Error\InvalidRequest($message, null);
}
$base = static::classPath();
$extn = urlencode($id);
return "$base/$extn";
}
/**
* @return string The full API URL for this API resource.
*/
public function instanceUrl()
{
return static::resourcePath($this['id']);
}
2026-04-18 20:32:18 +07:00
/**
* Send any request
* @return FedaPay\FedaPayObject
*/
public static function request($method, $url, $params = [], $headers = [])
{
list($response, $opts) = static::_staticRequest($method, $url, $params, $headers);
return Util::arrayToFedaPayObject($response, $opts);
}
2026-03-30 14:54:57 +07:00
}