/zf/library/Zend/Gdata/Gapps/EmailListQuery.php
PHP | 187 lines | 65 code | 14 blank | 108 comment | 9 complexity | 5669018f20d8da62985b3c70c489ecaa MD5 | raw file
Possible License(s): MIT, BSD-3-Clause, Apache-2.0, LGPL-2.1, LGPL-3.0, BSD-2-Clause
1<?php 2 3/** 4 * Zend Framework 5 * 6 * LICENSE 7 * 8 * This source file is subject to the new BSD license that is bundled 9 * with this package in the file LICENSE.txt. 10 * It is also available through the world-wide-web at this URL: 11 * http://framework.zend.com/license/new-bsd 12 * If you did not receive a copy of the license and are unable to 13 * obtain it through the world-wide-web, please send an email 14 * to license@zend.com so we can send you a copy immediately. 15 * 16 * @category Zend 17 * @package Zend_Gdata 18 * @subpackage Gapps 19 * @copyright Copyright (c) 2005-2011 Zend Technologies USA Inc. (http://www.zend.com) 20 * @license http://framework.zend.com/license/new-bsd New BSD License 21 * @version $Id: EmailListQuery.php 23775 2011-03-01 17:25:24Z ralph $ 22 */ 23 24/** 25 * @see Zend_Gdata_Gapps_Query 26 */ 27require_once('Zend/Gdata/Gapps/Query.php'); 28 29/** 30 * Assists in constructing queries for Google Apps email list entries. 31 * Instances of this class can be provided in many places where a URL is 32 * required. 33 * 34 * For information on submitting queries to a server, see the Google Apps 35 * service class, Zend_Gdata_Gapps. 36 * 37 * @category Zend 38 * @package Zend_Gdata 39 * @subpackage Gapps 40 * @copyright Copyright (c) 2005-2011 Zend Technologies USA Inc. (http://www.zend.com) 41 * @license http://framework.zend.com/license/new-bsd New BSD License 42 */ 43class Zend_Gdata_Gapps_EmailListQuery extends Zend_Gdata_Gapps_Query 44{ 45 46 /** 47 * A string which, if not null, indicates which email list should 48 * be retrieved by this query. 49 * 50 * @var string 51 */ 52 protected $_emailListName = null; 53 54 /** 55 * Create a new instance. 56 * 57 * @param string $domain (optional) The Google Apps-hosted domain to use 58 * when constructing query URIs. 59 * @param string $emailListName (optional) Value for the emailListName 60 * property. 61 * @param string $recipient (optional) Value for the recipient 62 * property. 63 * @param string $startEmailListName (optional) Value for the 64 * startEmailListName property. 65 */ 66 public function __construct($domain = null, $emailListName = null, 67 $recipient = null, $startEmailListName = null) 68 { 69 parent::__construct($domain); 70 $this->setEmailListName($emailListName); 71 $this->setRecipient($recipient); 72 $this->setStartEmailListName($startEmailListName); 73 } 74 75 /** 76 * Set the email list name to query for. When set, only lists with a name 77 * matching this value will be returned in search results. Set to 78 * null to disable filtering by list name. 79 * 80 * @param string $value The email list name to filter search results by, 81 * or null to disable. 82 */ 83 public function setEmailListName($value) 84 { 85 $this->_emailListName = $value; 86 } 87 88 /** 89 * Get the email list name to query for. If no name is set, null will be 90 * returned. 91 * 92 * @see setEmailListName 93 * @return string The email list name to filter search results by, or null 94 * if disabled. 95 */ 96 public function getEmailListName() 97 { 98 return $this->_emailListName; 99 } 100 101 /** 102 * Set the recipient to query for. When set, only subscribers with an 103 * email address matching this value will be returned in search results. 104 * Set to null to disable filtering by username. 105 * 106 * @param string $value The recipient email address to filter search 107 * results by, or null to disable. 108 */ 109 public function setRecipient($value) 110 { 111 if ($value !== null) { 112 $this->_params['recipient'] = $value; 113 } 114 else { 115 unset($this->_params['recipient']); 116 } 117 } 118 119 /** 120 * Get the recipient email address to query for. If no recipient is set, 121 * null will be returned. 122 * 123 * @see setRecipient 124 * @return string The recipient email address to filter search results by, 125 * or null if disabled. 126 */ 127 public function getRecipient() 128 { 129 if (array_key_exists('recipient', $this->_params)) { 130 return $this->_params['recipient']; 131 } else { 132 return null; 133 } 134 } 135 136 /** 137 * Set the first email list which should be displayed when retrieving 138 * a list of email lists. 139 * 140 * @param string $value The first email list to be returned, or null to 141 * disable. 142 */ 143 public function setStartEmailListName($value) 144 { 145 if ($value !== null) { 146 $this->_params['startEmailListName'] = $value; 147 } else { 148 unset($this->_params['startEmailListName']); 149 } 150 } 151 152 /** 153 * Get the first email list which should be displayed when retrieving 154 * a list of email lists. 155 * 156 * @return string The first email list to be returned, or null to 157 * disable. 158 */ 159 public function getStartEmailListName() 160 { 161 if (array_key_exists('startEmailListName', $this->_params)) { 162 return $this->_params['startEmailListName']; 163 } else { 164 return null; 165 } 166 } 167 168 /** 169 * Returns the URL generated for this query, based on it's current 170 * parameters. 171 * 172 * @return string A URL generated based on the state of this query. 173 * @throws Zend_Gdata_App_InvalidArgumentException 174 */ 175 public function getQueryUrl() 176 { 177 178 $uri = $this->getBaseUrl(); 179 $uri .= Zend_Gdata_Gapps::APPS_EMAIL_LIST_PATH; 180 if ($this->_emailListName !== null) { 181 $uri .= '/' . $this->_emailListName; 182 } 183 $uri .= $this->getQueryString(); 184 return $uri; 185 } 186 187}