/** * Logs the request in the custom_queue_job/custom_queue_request tables. * If the request is the same for a given date, only add entry to custom_queue_request. * @param $email * @return string * @throws Exception */ function queueRequest($email) { 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()); $queue_search_results = QueueUtil::searchQueue($email, $queue_criteria); // Different user, same request, add entry in custom_queue_request only if (isset($queue_search_results['job_id'])) { // Generate Token: $token = $this->generateToken(); // Create queue request: QueueUtil::createQueueRequest($token, $email, $queue_search_results['job_id']); //Update the last_update_date of the existing job QueueUtil::updateJobTimestamp($queue_search_results); return $token; } $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['email'] = $email; $queue_request['name'] = strtolower($criteria['global']['type_of_data']); $queue_request['request'] = $queue_criteria; $queue_request['request_criteria'] = json_encode($criteria); if ($this->requestSearchCriteria->getUserCriteria()) { $queue_request['user_criteria'] = json_encode($this->requestSearchCriteria->getUserCriteria()); } $queue_request['data_command'] = $sql_query; QueueUtil::createNewQueueRequest($queue_request); return $token; } catch (Exception $e) { LogHelper::log_error('Error Processing Queue Request: ' . $e); throw new Exception('Error Processing Queue Request.'); } }