| 
									
										
										
										
											2011-08-17 09:21:23 +08:00
										 |  |  | <?php if ( ! defined('BASEPATH')) exit('No direct script access allowed'); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | class API extends CI_Controller { | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2012-01-02 06:43:24 +08:00
										 |  |  | 	/* | 
					
						
							|  |  |  | 		TODOs | 
					
						
							|  |  |  | 		- Search Callsign (Return Json) | 
					
						
							|  |  |  | 		- Add QSO return json | 
					
						
							|  |  |  | 	*/ | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	function search_callsign($callsign) { | 
					
						
							| 
									
										
										
										
											2012-01-08 06:49:12 +08:00
										 |  |  | 		$this->db->select('COL_PRIMARY_KEY, COL_CALL, COL_MODE, COL_BAND, COL_COUNTRY, COL_FREQ, COL_GRIDSQUARE, COL_RST_RCVD, COL_RST_SENT, COL_SAT_MODE, COL_SAT_NAME'); | 
					
						
							|  |  |  | 		//$this->db->select("DATE_FORMAT(COL_TIME_ON, '%H:%i') AS time_on", FALSE );
 | 
					
						
							|  |  |  | 		//$this->db->select("DATE_FORMAT(COL_TIME_ON, '%d/%c/%Y') AS date_on", FALSE );
 | 
					
						
							| 
									
										
										
										
											2012-01-02 06:43:24 +08:00
										 |  |  | 		$this->db->like('COL_CALL', $callsign); | 
					
						
							|  |  |  | 		$this->db->or_like('COL_GRIDSQUARE', $callsign);  | 
					
						
							|  |  |  | 		$query = $this->db->get($this->config->item('table_name')); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 		$results = array(); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 		foreach ($query->result() as $result) | 
					
						
							|  |  |  | 		{ | 
					
						
							| 
									
										
										
										
											2012-01-08 06:49:12 +08:00
										 |  |  | 			$results[] = $result;	 | 
					
						
							| 
									
										
										
										
											2012-01-02 06:43:24 +08:00
										 |  |  | 		} | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2012-01-08 06:49:12 +08:00
										 |  |  | 		header('Content-type: application/json');   | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 		//$arr = array ('a'=>1,'b'=>2,'c'=>3,'d'=>4,'e'=>5);
 | 
					
						
							|  |  |  | 		echo $_GET['jsoncallback'].'('.json_encode($results).')'; //assign resulting code to $_GET['jsoncallback].
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 		//echo json_encode($results);
 | 
					
						
							| 
									
										
										
										
											2012-01-02 06:43:24 +08:00
										 |  |  | 
 | 
					
						
							|  |  |  | 	} | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2011-08-17 09:21:23 +08:00
										 |  |  | 	// Do absolutely nothing
 | 
					
						
							|  |  |  | 	function index() | 
					
						
							|  |  |  | 	{ | 
					
						
							| 
									
										
										
										
											2011-08-18 08:28:37 +08:00
										 |  |  | 		header("Location: ".$this->config->item('base_url')); | 
					
						
							| 
									
										
										
										
											2011-08-17 09:21:23 +08:00
										 |  |  | 		//load the model and get results
 | 
					
						
							| 
									
										
										
										
											2011-08-18 08:28:37 +08:00
										 |  |  | 		/* | 
					
						
							| 
									
										
										
										
											2011-08-17 09:21:23 +08:00
										 |  |  | 		$this->load->model('logbook_model'); | 
					
						
							|  |  |  | 		$data['data'] = array(); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 		// load the view
 | 
					
						
							|  |  |  | 		//$this->load->view('layout/header');
 | 
					
						
							|  |  |  | 		$this->load->view('api/index', $data); | 
					
						
							|  |  |  | 		//$this->load->view('layout/footer');
 | 
					
						
							| 
									
										
										
										
											2011-08-18 08:28:37 +08:00
										 |  |  | 		*/ | 
					
						
							| 
									
										
										
										
											2011-08-17 09:21:23 +08:00
										 |  |  | 	} | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2011-09-30 23:51:35 +08:00
										 |  |  | 	function help() | 
					
						
							|  |  |  | 	{ | 
					
						
							| 
									
										
										
										
											2011-12-10 01:34:50 +08:00
										 |  |  | 		$this->load->model('user_model'); | 
					
						
							|  |  |  | 		if(!$this->user_model->authorize(99)) { $this->session->set_flashdata('notice', 'You\'re not allowed to do that!'); redirect('dashboard'); } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 		$this->load->model('api_model'); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 		$data['api_keys'] = $this->api_model->keys(); | 
					
						
							| 
									
										
										
										
											2011-11-05 01:32:03 +08:00
										 |  |  | 
 | 
					
						
							|  |  |  | 		$data['page_title'] = "API Help"; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 		$this->load->view('layout/header', $data); | 
					
						
							| 
									
										
										
										
											2011-09-30 23:51:35 +08:00
										 |  |  | 		$this->load->view('api/help'); | 
					
						
							|  |  |  | 		$this->load->view('layout/footer'); | 
					
						
							|  |  |  | 	} | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2011-12-10 01:34:50 +08:00
										 |  |  | 	function generate($rights) { | 
					
						
							|  |  |  | 		$this->load->model('user_model'); | 
					
						
							|  |  |  | 		if(!$this->user_model->authorize(99)) { $this->session->set_flashdata('notice', 'You\'re not allowed to do that!'); redirect('dashboard'); } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 		$this->load->model('api_model'); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 		$data['api_keys'] = $this->api_model->generate_key($rights); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 		redirect('api/help'); | 
					
						
							|  |  |  | 	} | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	// Example of authing
 | 
					
						
							|  |  |  | 	function auth($key) { | 
					
						
							|  |  |  | 		$this->load->model('api_model'); | 
					
						
							|  |  |  | 			header("Content-type: text/xml");  | 
					
						
							|  |  |  | 		if($this->api_model->access($key) == "No Key Found" || $this->api_model->access($key) == "Key Disabled") { | 
					
						
							|  |  |  | 			echo "<auth>"; | 
					
						
							|  |  |  | 			echo "<message>Key Invalid - either not found or disabled</message>"; | 
					
						
							|  |  |  | 			echo "</auth>"; | 
					
						
							|  |  |  | 		} else { | 
					
						
							|  |  |  | 			echo "<auth>"; | 
					
						
							|  |  |  | 			echo "<status>Valid</status>"; | 
					
						
							|  |  |  | 			echo "<rights>".$this->api_model->access($key)."</rights>"; | 
					
						
							|  |  |  | 			echo "</auth>"; | 
					
						
							| 
									
										
										
										
											2011-12-10 01:35:48 +08:00
										 |  |  | 		} | 
					
						
							| 
									
										
										
										
											2011-12-10 01:34:50 +08:00
										 |  |  | 	} | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2011-08-17 09:21:23 +08:00
										 |  |  | 	// FUNCTION: search()
 | 
					
						
							|  |  |  | 	// Handle search requests
 | 
					
						
							|  |  |  | 	/* | 
					
						
							|  |  |  | 		Okay, so here's how it works in a nutshell... | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 		******************************************************************* | 
					
						
							|  |  |  | 		Because this is effectively just a filter between the query string | 
					
						
							|  |  |  | 		and a MySQL statement, if done wrong we're just asking for pain. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 		DO NOT alter any of the filtering statements without fully | 
					
						
							|  |  |  | 		understanding what you're doing. CodeIgniter provides some | 
					
						
							|  |  |  | 		protection against unwanted characters in the query string, but | 
					
						
							|  |  |  | 		this should in no way be relied upon for safety. | 
					
						
							|  |  |  | 		******************************************************************* | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 		Example query:- | 
					
						
							|  |  |  | 		.../search/query[Call~M0*(and)(Locator~I*(or)Locator~J*)]/limit[10]/fields[distinct(Call),Locator]/order[Call(asc)] | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 		There's four parts to this query, separated with forward slashes. It's effectively a heavily-sanitised | 
					
						
							|  |  |  | 		MySQL query, hence the hideous search and replace code blocks below. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 		FIELDS | 
					
						
							|  |  |  | 		------ | 
					
						
							|  |  |  | 		Straightforward - input is sanitised and passed on - in the example, this ends up as "DISTINCT (Call),Locator", | 
					
						
							|  |  |  | 		which is then the first argument to 'SELECT' | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 		QUERY | 
					
						
							|  |  |  | 		----- | 
					
						
							|  |  |  | 		This forms the 'WHERE' clause. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 		* '(and)' and '(or)' are expanded out to ' AND ' and ' OR ' | 
					
						
							|  |  |  | 		* Parentheses are preserved | 
					
						
							|  |  |  | 		* '~' is expanded out to ' LIKE ' | 
					
						
							|  |  |  | 		* '*' is translated to '%' | 
					
						
							|  |  |  | 		* Values are encapsulated in quote marks | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 		So in the example, this translates to "WHERE Call LIKE 'M0%' AND (Locator LIKE 'I%' OR Locator LIKE 'J%')" | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 		ORDER | 
					
						
							|  |  |  | 		----- | 
					
						
							|  |  |  | 		Sanitised, so our example ends up as "ORDER BY Call ASC". | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 		LIMIT | 
					
						
							|  |  |  | 		----- | 
					
						
							|  |  |  | 		Straightforward - what's between the square brackets is passed as an argument to 'LIMIT' | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 		Finally, once this has been done, each field name is translated to the MySQL column name. | 
					
						
							|  |  |  | 	*/ | 
					
						
							|  |  |  | 	function search() | 
					
						
							|  |  |  | 	{ | 
					
						
							|  |  |  | 		// Load the API and Logbook models
 | 
					
						
							|  |  |  | 		$this->load->model('api_model'); | 
					
						
							|  |  |  | 		$this->load->model('logbook_model'); | 
					
						
							| 
									
										
										
										
											2011-08-20 00:12:13 +08:00
										 |  |  | 		$this->load->model('user_model'); | 
					
						
							| 
									
										
										
										
											2011-08-17 09:21:23 +08:00
										 |  |  | 
 | 
					
						
							|  |  |  | 		$arguments = $this->_retrieve(); | 
					
						
							| 
									
										
										
										
											2012-01-02 08:08:36 +08:00
										 |  |  | 
 | 
					
						
							|  |  |  | 		if((!$this->user_model->authorize(3)) && ($this->api_model->authorize($arguments['key']) == 0)) { | 
					
						
							|  |  |  |       $this->session->set_flashdata('notice', 'You\'re not allowed to do that!'); redirect('dashboard'); | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 		// Retrieve the arguments from the query string
 | 
					
						
							| 
									
										
										
										
											2012-01-02 07:15:11 +08:00
										 |  |  |     $data['data']['format'] = $arguments['format']; | 
					
						
							| 
									
										
										
										
											2011-08-17 09:21:23 +08:00
										 |  |  | 	 | 
					
						
							|  |  |  | 		// Call the parser within the API model to build the query
 | 
					
						
							| 
									
										
										
										
											2011-09-30 23:51:35 +08:00
										 |  |  | 		$query = $this->api_model->select_parse($arguments); | 
					
						
							| 
									
										
										
										
											2011-08-17 09:21:23 +08:00
										 |  |  | 
 | 
					
						
							|  |  |  | 		// Execute the query, and retrieve the results
 | 
					
						
							|  |  |  | 		$s = $this->logbook_model->api_search_query($query); | 
					
						
							|  |  |  | 		$a = 0; | 
					
						
							| 
									
										
										
										
											2012-01-04 07:30:53 +08:00
										 |  |  | 
 | 
					
						
							|  |  |  |     if(isset($s['results'])) { | 
					
						
							|  |  |  |   		$results = $s['results']; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	  	// Cycle through the results, and translate between MySQL column names
 | 
					
						
							|  |  |  |   		// and more friendly, descriptive names
 | 
					
						
							|  |  |  |   		if($results->num_rows != 0) | 
					
						
							|  |  |  |   		{ | 
					
						
							|  |  |  |   			foreach ($results->result() as $row) { | 
					
						
							|  |  |  |   				$record = (array)$row; | 
					
						
							|  |  |  |   				$r[$a]['rid'] = $a; | 
					
						
							|  |  |  |   				while (list($key, $val) = each($record)) { | 
					
						
							|  |  |  |   					$r[$a][$this->api_model->name($key)] = $val; | 
					
						
							|  |  |  |   				} | 
					
						
							|  |  |  |     			$a++; | 
					
						
							|  |  |  |   			} | 
					
						
							|  |  |  |   			// Add the result record to the main results array
 | 
					
						
							| 
									
										
										
										
											2011-08-17 09:21:23 +08:00
										 |  |  | 	    	$data['data']['search_Result']['results'] = $r; | 
					
						
							| 
									
										
										
										
											2012-01-04 07:30:53 +08:00
										 |  |  |   		} | 
					
						
							|  |  |  |   		else | 
					
						
							|  |  |  |   		{ | 
					
						
							|  |  |  |   			// We've got no results, so make this empty for completeness
 | 
					
						
							|  |  |  |   	    $data['data']['search_Result']['results'] = ""; | 
					
						
							|  |  |  |   		} | 
					
						
							|  |  |  |     } else { | 
					
						
							|  |  |  |       $data['data']['error'] = $s['error']; | 
					
						
							|  |  |  |       $data['data']['search_Result']['results'] = ""; | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2011-08-17 09:21:23 +08:00
										 |  |  | 		// Add some debugging information to the XML output
 | 
					
						
							|  |  |  | 		$data['data']['queryInfo']['call'] = "search"; | 
					
						
							|  |  |  | 		$data['data']['queryInfo']['dbQuery'] = $s['query']; | 
					
						
							|  |  |  | 		$data['data']['queryInfo']['numResults'] = $a; | 
					
						
							|  |  |  | 		$data['data']['queryInfo']['executionTime'] = $s['time']; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 		// Load the XML output view
 | 
					
						
							|  |  |  | 		$this->load->view('api/index', $data); | 
					
						
							|  |  |  | 	} | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2012-01-02 08:08:36 +08:00
										 |  |  |   function validate() | 
					
						
							|  |  |  |   { | 
					
						
							|  |  |  | 		// Load the API and Logbook models
 | 
					
						
							|  |  |  | 		$this->load->model('api_model'); | 
					
						
							|  |  |  | 		$this->load->model('logbook_model'); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 		// Retrieve the arguments from the query string
 | 
					
						
							|  |  |  | 		$arguments = $this->_retrieve(); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 		// Add some debugging information to the XML output
 | 
					
						
							|  |  |  |     $data['data'] = $arguments; | 
					
						
							|  |  |  | 		$data['data']['queryInfo']['call'] = "validate"; | 
					
						
							|  |  |  | 		$data['data']['queryInfo']['dbQuery'] = ""; | 
					
						
							|  |  |  | 		$data['data']['queryInfo']['numResults'] = 1; | 
					
						
							|  |  |  | 		$data['data']['queryInfo']['executionTime'] = 0; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     $data['data']['validate_Result']['results'] = array(0 => array('Result' => $this->api_model->authorize($arguments['key']))); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     $this->load->view('api/index', $data); | 
					
						
							|  |  |  |   } | 
					
						
							|  |  |  |      | 
					
						
							| 
									
										
										
										
											2011-09-30 23:51:35 +08:00
										 |  |  | 	function add() | 
					
						
							|  |  |  | 	{ | 
					
						
							|  |  |  | 		// Load the API and Logbook models
 | 
					
						
							|  |  |  | 		$this->load->model('api_model'); | 
					
						
							|  |  |  | 		$this->load->model('logbook_model'); | 
					
						
							|  |  |  | 		$this->load->model('user_model'); | 
					
						
							|  |  |  | 		if(!$this->user_model->authorize(3)) { $this->session->set_flashdata('notice', 'You\'re not allowed to do that!'); redirect('dashboard'); } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 		// Retrieve the arguments from the query string
 | 
					
						
							|  |  |  | 		$arguments = $this->_retrieve(); | 
					
						
							|  |  |  | 	 | 
					
						
							|  |  |  | 		// Call the parser within the API model to build the query
 | 
					
						
							|  |  |  | 		$query = $this->api_model->insert_parse($arguments); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 		# Check for guessable fields
 | 
					
						
							|  |  |  | 		if(!isset($query['COL_TIME_ON'])) | 
					
						
							|  |  |  | 		{ | 
					
						
							|  |  |  | 			$query['COL_TIME_ON'] = date("Y-m-d H:i:s", time()); | 
					
						
							|  |  |  | 		} | 
					
						
							|  |  |  | 		if(!isset($query['COL_TIME_OFF'])) | 
					
						
							|  |  |  | 		{ | 
					
						
							|  |  |  | 			$query['COL_TIME_OFF'] = date("Y-m-d H:i:s", time()); | 
					
						
							|  |  |  | 		} | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 		$data['data']['queryInfo']['dbQuery'] = ""; | 
					
						
							|  |  |  | 		$data['data']['queryInfo']['executionTime'] = 0; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 		if(!isset($query['COL_CALL'])) { | 
					
						
							|  |  |  | 			$data['data']['add_Result']['results'] = array(0 => array('Result' => 'EMISSINGCALL')); | 
					
						
							|  |  |  | 		} else { | 
					
						
							|  |  |  | 			$s = $this->logbook_model->api_insert_query($query); | 
					
						
							|  |  |  | 			$data['data']['queryInfo']['dbQuery'] = $s['query']; | 
					
						
							|  |  |  | 			$data['data']['queryInfo']['executionTime'] = $s['time']; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 			$data['data']['add_Result']['results'] = array(0 => array('Result' => $s['result_string'])); | 
					
						
							|  |  |  | 		} | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 		// Add some debugging information to the XML output
 | 
					
						
							|  |  |  | 		$data['data']['queryInfo']['call'] = "add"; | 
					
						
							|  |  |  | 		$data['data']['queryInfo']['numResults'] = 0; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 		$this->load->view('api/index', $data); | 
					
						
							|  |  |  | 	} | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2011-08-17 09:21:23 +08:00
										 |  |  | 	// FUNCTION: _retrieve()
 | 
					
						
							|  |  |  | 	// Pull the search query arguments from the query string
 | 
					
						
							|  |  |  | 	private function _retrieve() | 
					
						
							|  |  |  | 	{ | 
					
						
							|  |  |  | 		// This whole function could probably have been done in one line... if this was Perl.
 | 
					
						
							|  |  |  | 		$arguments = array(); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 		// Retrieve each arguments
 | 
					
						
							| 
									
										
										
										
											2012-01-04 07:30:53 +08:00
										 |  |  | 		$query = preg_grep("/^query=(.*)$/", $this->uri->segments); | 
					
						
							|  |  |  | 		$limit = preg_grep("/^limit=(.*)$/", $this->uri->segments); | 
					
						
							|  |  |  | 		$order = preg_grep("/^order=(.*)$/", $this->uri->segments); | 
					
						
							|  |  |  | 		$fields = preg_grep("/^fields=(.*)$/", $this->uri->segments); | 
					
						
							|  |  |  | 		$format = preg_grep("/^format=(.*)$/", $this->uri->segments); | 
					
						
							|  |  |  | 		$key = preg_grep("/^key=(.*)$/", $this->uri->segments); | 
					
						
							| 
									
										
										
										
											2011-08-17 09:21:23 +08:00
										 |  |  | 
 | 
					
						
							|  |  |  | 		// Strip each argument
 | 
					
						
							|  |  |  | 		$arguments['query'] = substr(array_pop($query), 6); | 
					
						
							| 
									
										
										
										
											2012-01-04 07:30:53 +08:00
										 |  |  | 		$arguments['query'] = substr($arguments['query'], 0, strlen($arguments['query'])); | 
					
						
							| 
									
										
										
										
											2011-08-17 09:21:23 +08:00
										 |  |  | 		$arguments['limit'] = substr(array_pop($limit), 6); | 
					
						
							| 
									
										
										
										
											2012-01-04 07:30:53 +08:00
										 |  |  | 		$arguments['limit'] = substr($arguments['limit'], 0, strlen($arguments['limit'])); | 
					
						
							| 
									
										
										
										
											2011-08-17 09:21:23 +08:00
										 |  |  | 		$arguments['order'] = substr(array_pop($order), 6); | 
					
						
							| 
									
										
										
										
											2012-01-04 07:30:53 +08:00
										 |  |  | 		$arguments['order'] = substr($arguments['order'], 0, strlen($arguments['order'])); | 
					
						
							| 
									
										
										
										
											2011-08-17 09:21:23 +08:00
										 |  |  | 		$arguments['fields'] = substr(array_pop($fields), 7); | 
					
						
							| 
									
										
										
										
											2012-01-04 07:30:53 +08:00
										 |  |  | 		$arguments['fields'] = substr($arguments['fields'], 0, strlen($arguments['fields'])); | 
					
						
							| 
									
										
										
										
											2012-01-02 07:15:11 +08:00
										 |  |  | 		$arguments['format'] = substr(array_pop($format), 7); | 
					
						
							| 
									
										
										
										
											2012-01-04 07:30:53 +08:00
										 |  |  | 		$arguments['format'] = substr($arguments['format'], 0, strlen($arguments['format'])); | 
					
						
							| 
									
										
										
										
											2012-01-02 08:08:36 +08:00
										 |  |  | 		$arguments['key'] = substr(array_pop($key), 4); | 
					
						
							| 
									
										
										
										
											2012-01-04 07:30:53 +08:00
										 |  |  | 		$arguments['key'] = substr($arguments['key'], 0, strlen($arguments['key'])); | 
					
						
							| 
									
										
										
										
											2012-01-02 08:08:36 +08:00
										 |  |  | 
 | 
					
						
							|  |  |  |     // By default, assume XML for the format if not otherwise set
 | 
					
						
							|  |  |  |     if($arguments['format'] == "") { | 
					
						
							|  |  |  |       $arguments['format'] = "xml"; | 
					
						
							|  |  |  |     } | 
					
						
							| 
									
										
										
										
											2011-08-17 09:21:23 +08:00
										 |  |  | 
 | 
					
						
							|  |  |  | 		// Return the arguments
 | 
					
						
							|  |  |  | 		return $arguments; | 
					
						
							|  |  |  | 	} | 
					
						
							| 
									
										
										
										
											2012-04-08 00:36:38 +08:00
										 |  |  | 	 | 
					
						
							|  |  |  | 	/* ENDPOINT for Rig Control */ | 
					
						
							|  |  |  | 	 | 
					
						
							|  |  |  | 	function radio() { | 
					
						
							|  |  |  | 		header('Content-type: application/json'); | 
					
						
							|  |  |  | 	 | 
					
						
							|  |  |  | 		//$json = '{"radio":"FT-950","frequency":14075,"mode":"SSB","timestamp":"2012/04/07 16:47"}';
 | 
					
						
							|  |  |  | 		 | 
					
						
							|  |  |  | 		$this->load->model('cat'); | 
					
						
							|  |  |  | 	 | 
					
						
							|  |  |  | 		//var_dump(file_get_contents("php://input"), true);
 | 
					
						
							|  |  |  | 	 | 
					
						
							|  |  |  | 		// Decode JSON and store
 | 
					
						
							|  |  |  | 		$obj = json_decode(file_get_contents("php://input"), true); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 		// Store Result to Database		
 | 
					
						
							|  |  |  | 		$this->cat->update($obj); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 		// Return Message
 | 
					
						
							|  |  |  | 		 | 
					
						
							|  |  |  | 		$arr = array('status' => 'success'); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 		echo json_encode($arr); | 
					
						
							|  |  |  | 		 | 
					
						
							|  |  |  | 	} | 
					
						
							| 
									
										
										
										
											2011-08-17 09:21:23 +08:00
										 |  |  | } |