Пример #1
0
 /**
  * Retrieves specified entity based passed page number and page size
  *
  * @param string $urlResource Entity type to Find
  * @return array Returns an array of entities of specified type. 
  */
 public function FindAll($entityName, $pageNumber = 0, $pageSize = 500)
 {
     $this->serviceContext->IppConfiguration->Logger->RequestLog->Log(TraceLevel::Info, "Called Method FindAll.");
     $phpClassName = DataService::decorateIntuitEntityToPhpClassName($entityName);
     // Handle some special cases
     if (strtolower('company') == strtolower($entityName)) {
         $entityName = 'CompanyInfo';
     }
     if ('QBO' == $this->serviceContext->serviceType) {
         $httpsContentType = CoreConstants::CONTENTTYPE_APPLICATIONTEXT;
     } else {
         $httpsContentType = CoreConstants::CONTENTTYPE_TEXTPLAIN;
     }
     $httpsUri = implode(CoreConstants::SLASH_CHAR, array('company', $this->serviceContext->realmId, 'query'));
     $httpsPostBody = "select * from {$entityName} startPosition {$pageNumber} maxResults {$pageSize}";
     $requestParameters = $this->getPostRequestParameters($httpsUri, $httpsContentType);
     $restRequestHandler = new SyncRestHandler($this->serviceContext);
     list($responseCode, $responseBody) = $restRequestHandler->GetResponse($requestParameters, $httpsPostBody, NULL);
     $parsedResponseBody = NULL;
     try {
         $responseXmlObj = simplexml_load_string($responseBody);
         if ($responseXmlObj && $responseXmlObj->QueryResponse) {
             $parsedResponseBody = $this->responseSerializer->Deserialize($responseXmlObj->QueryResponse->asXML(), FALSE);
         }
     } catch (Exception $e) {
         IdsExceptionManager::HandleException($e);
     }
     return $parsedResponseBody;
 }