File "Resource.php"
Full Path: /home/cananyalcin/public_html/core/core/lib/coinbase/src/Resource/Resource.php
File size: 1.69 KB
MIME-type: text/x-php
Charset: utf-8
<?php
namespace Coinbase\Wallet\Resource;
class Resource
{
/** @var string */
private $id;
/** @var string */
private $resource;
/** @var string */
private $resourcePath;
/** @var array */
private $rawData;
public function __construct($resourceType, $resourcePathOrAttrs = null, $id = null)
{
$this->resource = $resourceType;
$this->id = $id;
if(is_array($resourcePathOrAttrs))
{
$this->updateAttributes($resourcePathOrAttrs);
}
else
{
$this->resourcePath = $resourcePathOrAttrs;
// extract id from resource path
if (!$id && $resourcePathOrAttrs) {
$parts = explode('/', $resourcePathOrAttrs);
$this->id = array_pop($parts);
}
}
}
public function getId()
{
return $this->id;
}
public function getResourceType()
{
return $this->resource;
}
public function getResourcePath()
{
return $this->resourcePath;
}
public function getRawData()
{
return $this->rawData;
}
public function isExpanded()
{
return (Boolean) $this->rawData;
}
public function updateAttributes($attrHash)
{
foreach ($attrHash as $attr => $val)
{
$action = "set" . ucfirst(self::underscoreToCamelCase($attr));
if(is_callable(array($this, $action)))
{
$this->$action($val);
}
}
}
private static function underscoreToCamelCase( $string )
{
$func = function ($c) { return strtoupper($c[1]); };
return preg_replace_callback('/_([a-z])/', $func, $string);
}
}