All pastes #2073575 Raw Edit

Unnamed

public text v1 · immutable
#2073575 ·published 2011-06-02 06:41 UTC
rendered paste body
<?php

/**
 * @version $Id: Response.php 382 2011-06-01 12:07:42Z povskr $
 * @filesource $HeadURL: svn+ssh://svn.dev.zebra.lt/svn/zebra_library/Zebra/SMS/Response.php $
 */

class Zebra_SMS_Response
{
    /**
     * Atsakymo parametrai
     * 
     * @var array
     */
    private $_params = array(
        'error' => false, // jei FALSE, 'message' bus sunčiama vartotojui į telefoną 
        'message' => null, // jei 'error' TRUE - klaidos pranešimas, jei 'error' FALSE - pranešimas siuntėjui 
    );
    
    
    /**
     * Kriptografijos įrankis
     * 
     * @var Zebra_Crypt_OpenSSL 
     */
    private $_crypt;
    

    /**
     * Konstruktorius
     * 
     * @param Zebra_Crypt_OpenSSL $crypt
     */
    public function __construct(Zebra_Crypt_OpenSSL $crypt)
    {
        $this->_crypt = $crypt;
    }
    
    
    /**
     * Pažymima, kad generuojant atsakyma įvyko klaida
     * 
     * @param boolean $is_error
     */
    public function setError($is_error = true)
    {
        $this->_setParam('error', $is_error);
    }
    
    
    /**
     * Nustatoma atsakymo žinutė
     * 
     * @param string $message
     */
    public function setMessage($message)
    {
        $this->_setParam('message', $message);
    }
    
    
    /**
     * Objektas paverčiamas į 'stringą'
     * 
     * @return string
     */
    public function toString()
    {
        return http_build_query($this->toArray());
    }
    
    
    /**
     * Užkoduojamas atsakymas
     * 
     * @return string 
     */
    public function encrypt()
    {
        return $this->_crypt->encrypt($this->toString());
    }
    
    
    /**
     * Obejktas paverčiamas į masyvą
     * 
     * @return array
     */
    public function toArray()
    {
        $params = $this->_getParams();
        $params['signature'] = $this->_generateSignature();
        return $params;
    }
    
    
    /**
     * Sugeneruojami duomenys pasirašymui
     * 
     * @return string
     */
    private function _generateSignatureString()
    {
        parse_str(http_build_query($this->_getParams()), $params);
        return implode('', $params);
    }
    
    
    /**
     * Sugeneruojamas parašas
     * 
     * @return string
     */
    private function _generateSignature()
    {
        $signature_string = $this->_generateSignatureString();
        return $this->_crypt->sign($signature_string);
    }
    
    
    /**
     * Nustatomas atsakymo parametras
     * 
     * @param string $name
     * @param mixed $value
     */
    private function _setParam($name, $value)
    {
        $this->_params[$name] = $value;
    }
    
    
    /**
     * Gražinami visi atsakymo parametrai
     * 
     * @return array
     */
    private function _getParams()
    {
        return $this->_params;
    }
}