/** * For records under 200,000, user will download the file immediately. * An entry will be made in both the custom_queue_job & custom_queue_request. * * @return string * @throws Exception */ function queueImmediateRequest() { try { // validateRequest: if (!$this->validateRequest()) { return $this->response; } if (!isset($this->requestDataSet)) { // Prepare dataSet: $this->setRequestDataSet(); } $queue_request_token = NULL; // Get queue request: $queue_criteria = $this->getQueueCriteria($this->requestSearchCriteria->getCriteria()); $sql_query = get_db_query(TRUE, $this->requestDataSet->name, $this->requestDataSet->columns, $this->requestDataSet->parameters, $this->requestDataSet->sortColumn, $this->requestDataSet->startWith, $this->requestDataSet->limit, NULL); if (isset($this->requestDataSet->adjustSql)) { eval($this->requestDataSet->adjustSql); } $token = $this->generateToken(); $criteria = $this->requestSearchCriteria->getCriteria(); // Prepare new queue request: $queue_request['token'] = $token; $queue_request['name'] = strtolower($criteria['global']['type_of_data']); $queue_request['request'] = $queue_criteria; $queue_request['request_criteria'] = json_encode($criteria); $queue_request['status'] = 4; // N/A - no file to generate if ($this->requestSearchCriteria->getUserCriteria()) { $queue_request['user_criteria'] = json_encode($this->requestSearchCriteria->getUserCriteria()); } $queue_request['data_command'] = $sql_query; QueueUtil::createImmediateNewQueueRequest($queue_request); return $token; } catch (Exception $e) { LogHelper::log_error('Error Processing Queue Request: ' . $e); throw new Exception('Error Processing Queue Request.'); } }