104 lines
2.6 KiB
PHP
104 lines
2.6 KiB
PHP
<?php
|
|
|
|
/**
|
|
* Standard Request object for the AlternC API
|
|
*
|
|
* Helps streamlining the calls by checking parameters
|
|
*/
|
|
class Alternc_Api_Request {
|
|
|
|
/**
|
|
*
|
|
* @var Alternc_Api_Token object
|
|
*/
|
|
public $token;
|
|
|
|
/**
|
|
*
|
|
* @var string a token hash (to be authenticated)
|
|
*/
|
|
public $token_hash;
|
|
|
|
/**
|
|
* must link to a Alternc_Api_Object_Interface
|
|
*
|
|
* @var string
|
|
*/
|
|
public $object;
|
|
|
|
/**
|
|
* must link to a Alternc_Api_Object_Interface method
|
|
*
|
|
* @var string
|
|
*/
|
|
public $action;
|
|
|
|
/**
|
|
* bag of data
|
|
*
|
|
* @var array
|
|
*/
|
|
public $options;
|
|
|
|
/**
|
|
*
|
|
* Bag of data
|
|
*
|
|
* @var array
|
|
*/
|
|
public $metadata;
|
|
|
|
const ERR_MISSING_PARAMETER = 111801;
|
|
|
|
function __construct($options) {
|
|
|
|
|
|
// Attempts to retrieve object
|
|
if (isset($options["object"]) && is_string($options["object"])) {
|
|
$this->object = $options["object"];
|
|
} else {
|
|
throw new \Exception("Missing parameter object", self::ERR_MISSING_PARAMETER);
|
|
}
|
|
|
|
// Attempts to retrieve action
|
|
if (isset($options["action"]) && is_string($options["action"])) {
|
|
$this->action = $options["action"];
|
|
} else {
|
|
throw new \Exception("Missing parameter action", self::ERR_MISSING_PARAMETER);
|
|
}
|
|
|
|
// Attempts to retrieve options
|
|
if (isset($options["options"])) {
|
|
if (is_array($options)) {
|
|
$this->options = $options["options"];
|
|
} else {
|
|
throw new \Exception("Missing parameter options", self::ERR_MISSING_PARAMETER);
|
|
}
|
|
} else {
|
|
$this->options = array();
|
|
}
|
|
|
|
// Attempts to retrieve token
|
|
if (isset($options["token"])) {
|
|
if (is_a($options["token"], Alternc_Api_Token)) {
|
|
$this->token = $options["token"];
|
|
} else {
|
|
throw new \Exception("Bad parameter token", self::ERR_MISSING_PARAMETER);
|
|
}
|
|
} else {
|
|
// Attempts to retrieve token_hash then
|
|
if (isset($options["token_hash"]) && is_string($options["token_hash"])) {
|
|
$this->token_hash = $options["token_hash"];
|
|
} else {
|
|
throw new \Exception("Missing parameter token OR token_hash", self::ERR_MISSING_PARAMETER);
|
|
}
|
|
}
|
|
|
|
// Attempts to retrieve metadata (eg: API version)
|
|
if (isset($options["metadata"])) {
|
|
$this->metadata = $options["metadata"];
|
|
}
|
|
}
|
|
|
|
}
|