db = pg_connect( "host=".DATABASE_URL. " dbname=".DATABASE_NAME. " user=".DATABASE_USER. " password=".DATABASE_PASSWORD); } // Execute $sql unsing array $params as params when needed. function query($sql, $params = null) { $result = null; $error = 0; if(isset($params)) { $result = @pg_query_params($this->db, $sql, $params); } else { $result = @pg_query($this->db, $sql); } if(!$result) { $error = 10101; } if($error == 0) { $data = pg_fetch_all($result); } else { $data = null; } $query_response = array('data' => $data, 'error' => $error); return $query_response; } // Create response to API request. static function create_response($data, $error, $values = null) { $status_message = Database::create_status_code($error, $values); $meta = array('status'=>$error, 'message'=>$status_message); if($error != 0){ $data = ''; } $response_element_json = json_encode(array('meta'=>$meta, 'data'=>$data), JSON_PRETTY_PRINT); return $response_element_json; } // Create status message from status code. static function create_status_code($error, $values) { switch ($error) { case 0: return 'Success.'; case 10101: return 'SQL statement did not give a result.'; case 11101: case 14101: return 'User name does not match rules. User name must be 6 to 20 characters and consist of English letters and numbers only.'; case 11102: case 14103: return 'User name already exists. Please pick a different name.'; case 12101: case 13101: case 14102: case 15101: case 16101: return 'User ID not specified. This is an internal error.'; case 12102: return 'A game without a question is not possible. Please select new game length.'; case 12103: return 'Sorry, we only have '.$values[0].' questions. Please try again.'; case 12104: case 14104: case 15102: case 16102: return 'The specified user ID does not exist. This is an internal error.'; case 13102: return 'No valid time specified. This is an internal error.'; case 13103: return 'No chosen answer specified. This is an internal error.'; case 13104: return 'No game for specified user name. This is an internal error.'; case 13105: return 'The correct token was not provided. This is an internal error.'; default: return 'An unknown error occurred.'; } } } ?>