All Data Structures Functions Variables Pages
ApiRequest.php
1 <?php
2  /*********************************************************************************
3  * Zurmo is a customer relationship management program developed by
4  * Zurmo, Inc. Copyright (C) 2017 Zurmo Inc.
5  *
6  * Zurmo is free software; you can redistribute it and/or modify it under
7  * the terms of the GNU Affero General Public License version 3 as published by the
8  * Free Software Foundation with the addition of the following permission added
9  * to Section 15 as permitted in Section 7(a): FOR ANY PART OF THE COVERED WORK
10  * IN WHICH THE COPYRIGHT IS OWNED BY ZURMO, ZURMO DISCLAIMS THE WARRANTY
11  * OF NON INFRINGEMENT OF THIRD PARTY RIGHTS.
12  *
13  * Zurmo is distributed in the hope that it will be useful, but WITHOUT
14  * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
15  * FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more
16  * details.
17  *
18  * You should have received a copy of the GNU Affero General Public License along with
19  * this program; if not, see http://www.gnu.org/licenses or write to the Free
20  * Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
21  * 02110-1301 USA.
22  *
23  * You can contact Zurmo, Inc. with a mailing address at 27 North Wacker Drive
24  * Suite 370 Chicago, IL 60606. or at email address contact@zurmo.com.
25  *
26  * The interactive user interfaces in original and modified versions
27  * of this program must display Appropriate Legal Notices, as required under
28  * Section 5 of the GNU Affero General Public License version 3.
29  *
30  * In accordance with Section 7(b) of the GNU Affero General Public License version 3,
31  * these Appropriate Legal Notices must retain the display of the Zurmo
32  * logo and Zurmo copyright notice. If the display of the logo is not reasonably
33  * feasible for technical reasons, the Appropriate Legal Notices must display the words
34  * "Copyright Zurmo Inc. 2017. All rights reserved".
35  ********************************************************************************/
36 
40  class ApiRequest extends CApplicationComponent
41  {
42  const REST = 'REST';
43  const SOAP = 'SOAP';
44  const JSON_FORMAT = 'json';
45  const XML_FORMAT = 'xml';
46 
51  protected $paramsFormat;
52 
57  protected $requestClass;
58 
59  protected $resultClassName;
60 
64  public static function getParamsFromRequest()
65  {
66  }
67 
71  public function init()
72  {
73  //$moduleId = static::callingSomeMethod();
74  $moduleId = $this->getModuleId();
75  $rulesClassName = ApiRulesFactory::getRulesClassNameByModuleId($moduleId);
76  $requestClassName = $rulesClassName::getRequestClassName();
77 
78  // Set request class
79  $this->requestClass = new $requestClassName;
80  $this->setResponseFormat($this->requestClass->getResponseFormat());
81  $this->resultClassName = $rulesClassName::getResultClassName();
82  }
83 
84  public function getResultClassName()
85  {
86  return $this->resultClassName;
87  }
88 
89  public function getResponseClassName()
90  {
91  return $this->requestClass->getResponseClassName();
92  }
93 
94  public function getParams()
95  {
96  $params = $this->requestClass->getParamsFromRequest();
97  return $params;
98  }
99 
100  public function getResponseFormat()
101  {
102  return $this->paramsFormat;
103  }
104 
105  public function setResponseFormat($paramsFormat)
106  {
107  $this->paramsFormat = $paramsFormat;
108  }
109 
113  public function getSessionId()
114  {
115  return $this->requestClass->getSessionId();
116  }
117 
121  public function getSessionToken()
122  {
123  return $this->requestClass->getSessionToken();
124  }
125 
129  public function getUsername()
130  {
131  return $this->requestClass->getUsername();
132  }
133 
137  public function getPassword()
138  {
139  return $this->requestClass->getPassword();
140  }
141 
145  public function getLanguage()
146  {
147  return $this->requestClass->getLanguage();
148  }
149 
150  public function isSessionTokenRequired()
151  {
152  return $this->requestClass->isSessionTokenRequired();
153  }
154 
159  public static function isApiRequest($moduleName = 'api')
160  {
161  // We need to catch exception and return false in case that this method is called via ConsoleApplication.
162  try
163  {
164  $url = Yii::app()->getRequest()->getUrl();
165  }
166  catch (CException $e)
167  {
168  $url = '';
169  }
170 
171  if (strpos($url, '/' . $moduleName) !== false)
172  {
173  return true;
174  }
175  else
176  {
177  return false;
178  }
179  }
180 
181  protected function getModuleId()
182  {
183  $url = Yii::app()->getRequest()->getUrl();
184  if (strpos($url, '/api/') !== false)
185  {
186  return 'api';
187  }
188  else
189  {
190  return false;
191  }
192  }
193  }
194 ?>
static isApiRequest($moduleName= 'api')
Definition: ApiRequest.php:159
static getParamsFromRequest()
Definition: ApiRequest.php:64
Generated on Thu May 28 2020 07:10:28