      1: <?php
      2:
      3: namespace SMSApi\Api\Action\User;
      4:
      5: use SMSApi\Api\Action\AbstractAction;
      6: use SMSApi\Proxy\Uri;
      7:
      8: /**
      9:  * Class Add
     10:  * @package SMSApi\Api\Action\User
     11:  */
     12: class Add extends AbstractAction {
     13:
     14:     /**
     15:      * @param $data
     16:      * @return \SMSApi\Api\Response\UserResponse
     17:      */
     18:     protected function response( $data ) {
     19:
     20:         return new \SMSApi\Api\Response\UserResponse( $data );
     21:     }
     22:
     23:     /**
     24:      * @return Uri
     25:      */
     26:     public function uri() {
     27:
     28:         $query = "";
     29:
     30:         $query .= $this->paramsLoginToQuery();
     31:
     32:         $query .= $this->paramsOther();
     33:
     34:         return new Uri( $this->proxy->getProtocol(), $this->proxy->getHost(), $this->proxy->getPort(), "/api/user.do", $query );
     35:     }
     36:
     37:     /**
     38:      * New account user name.
     39:      *
     40:      * @param string $username account name
     41:      * @return $this
     42:      */
     43:     public function setUsername( $username ) {
     44:         $this->params[ "add_user" ] = $username;
     45:         return $this;
     46:     }
     47:
     48:     /**
     49:      * Set account password encoded md5 algorithm.
     50:      *
     51:      * @param string $password  password encoded md5
     52:      * @return $this
     53:      */
     54:     public function setPassword( $password ) {
     55:         $this->params[ "pass" ] = $password;
     56:         return $this;
     57:     }
     58:
     59:     /**
     60:      * Set account api password hashed with md5.
     61:      *
     62:      * @param string $password password api encoded md5
     63:      * @return $this
     64:      */
     65:     public function setPasswordApi( $password ) {
     66:         $this->params[ "pass_api" ] = $password;
     67:         return $this;
     68:     }
     69:
     70:     /**
     71:      * Set credit limit granted to account.
     72:      *
     73:      * @param number $limit limit
     74:      * @return $this
     75:      */
     76:     public function setLimit( $limit ) {
     77:         $this->params[ "limit" ] = $limit;
     78:         return $this;
     79:     }
     80:
     81:     /**
     82:      * Set month credits, the amount that will be granted 1st day of every month.
     83:      *
     84:      * @param number $limit limit number
     85:      * @return $this
     86:      */
     87:     public function setMonthLimit( $limit ) {
     88:         $this->params[ "month_limit" ] = $limit;
     89:         return $this;
     90:     }
     91:
     92:     /**
     93:      * Set access to main account sender names.
     94:      *
     95:      * @param bool $access if true access is granted
     96:      * @return $this
     97:      */
     98:     public function setFullAccessSenderNames( $access ) {
     99:         if ( $access == true ) {
    100:             $this->params[ "senders" ] = "1";
    101:         } else if ( $access == false ) {
    102:             $this->params[ "senders" ] = "0";
    103:         }
    104:
    105:         return $this;
    106:     }
    107:
    108:     /**
    109:      * @deprecated since v1.0.0 use SMSApi\Api\Action\User\Add::setFullAccessSenderNames
    110:      */
    111:     public function setSenders( $access ) {
    112:         return $this->setFullAccessSenderNames($access);
    113:     }
    114:
    115:     /**
    116:      * Set access to main account phonebook contacts.
    117:      *
    118:      * @param bool $access
    119:      * @return $this
    120:      */
    121:
    122:     public function setFullAccessPhoneBook( $access ) {
    123:
    124:         if ( $access == true ) {
    125:             $this->params[ "phonebook" ] = "1";
    126:         } else if ( $access == false ) {
    127:             $this->params[ "phonebook" ] = "0";
    128:         }
    129:
    130:         return $this;
    131:     }
    132:
    133:
    134:     /**
    135:      * @deprecated since v1.0.0 use SMSApi\Api\Action\User\Add::setFullAccessPhoneBook
    136:      */
    137:     public function setPhonebook( $access )
    138:     {
    139:         return $this->setFullAccessPhoneBook($access);
    140:     }
    141:
    142:     /**
    143:      * Set account active status.
    144:      *
    145:      * @param bool $val if true set account enable otherwise disabled
    146:      * @return $this
    147:      */
    148:     public function setActive( $val ) {
    149:
    150:         if ( $val == true ) {
    151:             $this->params[ "active" ] = "1";
    152:         } else if ( $val == false ) {
    153:             $this->params[ "active" ] = "0";
    154:         }
    155:
    156:         return $this;
    157:     }
    158:
    159:     /**
    160:      * Set additional account description.
    161:      *
    162:      * @param string $info description
    163:      * @return $this
    164:      */
    165:     public function setInfo( $info ) {
    166:         $this->params[ "info" ] = $info;
    167:         return $this;
    168:     }
    169:
    170: }
    171:
    172: