103 lines
		
	
	
		
			2.5 KiB
		
	
	
	
		
			PHP
		
	
	
	
			
		
		
	
	
			103 lines
		
	
	
		
			2.5 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"];
 | 
						|
        } 
 | 
						|
        
 | 
						|
        
 | 
						|
        
 | 
						|
    }
 | 
						|
} |