/** * Retrieves possible unique values based on table and column * * @apiMethod GET * @apiUri /time/getValues * @apiParameter { * "name": "table", * "description": "Table name of interest", * "type": "string", * "required": true, * "default": "" * } * @apiParameter { * "name": "column", * "description": "Table column of interest", * "type": "string", * "required": true, * "default": "" * } * @return void */ public function getValuesTask() { // Require authentication and authorization $this->requiresAuthentication(); $this->authorizeOrFail(); // Get table and column values $table = Request::getVar('table', ''); $column = Request::getVar('column', ''); // Make sure those values haven't been tampered with $acceptable = array('time_tasks', 'time_records'); if (!in_array($table, $acceptable)) { App::abort(404, 'Table provided is not allowed'); } // Setup query $query = "SELECT DISTINCT(" . $column . ") as val"; $query .= " FROM #__" . $table; $query .= " ORDER BY val ASC"; App::get('db')->setQuery($query); if (!($values = App::get('db')->loadObjectList())) { App::abort(500, 'Query failed'); } // Process any overrides $values = Filters::filtersOverrides($values, $column); // Create object with values $response = new stdClass(); $response->values = $values; // Return object $this->send($response); }