9 * @author Craig Andrews <candrews@integralblue.com>
10 * @license http://www.fsf.org/licensing/licenses/agpl.html AGPLv3
11 * @link http://status.net/
13 * StatusNet - the distributed open-source microblogging tool
14 * Copyright (C) 2008, 2009, StatusNet, Inc.
16 * This program is free software: you can redistribute it and/or modify
17 * it under the terms of the GNU Affero General Public License as published by
18 * the Free Software Foundation, either version 3 of the License, or
19 * (at your option) any later version.
21 * This program is distributed in the hope that it will be useful,
22 * but WITHOUT ANY WARRANTY; without even the implied warranty of
23 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
24 * GNU Affero General Public License for more details.
26 * You should have received a copy of the GNU Affero General Public License
27 * along with this program. If not, see <http://www.gnu.org/licenses/>.
30 if (!defined('STATUSNET') && !defined('LACONICA')) {
35 * Geocode action class
39 * @author Craig Andrews <candrews@integralblue.com>
40 * @copyright 2009 Free Software Foundation, Inc http://www.fsf.org
41 * @license http://www.fsf.org/licensing/licenses/agpl.html AGPLv3
42 * @link http://status.net/
44 class GeocodeAction extends Action
50 function prepare($args)
52 parent::prepare($args);
53 $token = $this->trimmed('token');
54 if (!$token || $token != common_session_token()) {
55 // TRANS: Client error displayed when the session token does not match or is not given.
56 $this->clientError(_('There was a problem with your session token. '.
57 'Try again, please.'));
59 $this->lat = $this->trimmed('lat');
60 $this->lon = $this->trimmed('lon');
61 $this->location = Location::fromLatLon($this->lat, $this->lon);
68 * @param array $args query arguments
73 function handle($args)
75 header('Content-Type: application/json; charset=utf-8');
76 $location_object = array();
77 $location_object['lat']=$this->lat;
78 $location_object['lon']=$this->lon;
80 $location_object['location_id']=$this->location->location_id;
81 $location_object['location_ns']=$this->location->location_ns;
82 $location_object['name']=$this->location->getName();
83 $location_object['url']=$this->location->getUrl();
85 print(json_encode($location_object));
89 * Is this action read-only?
91 * @return boolean true
93 function isReadOnly($args)