* along with this program. If not, see <http://www.gnu.org/licenses/>.
*
* @category API
- * @package GNUSocial
+ * @package GNUsocial
* @author Hannes Mannerheim <h@nnesmannerhe.im>
* @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0
* @link http://www.gnu.org/software/social/
*/
class ApiCheckHubAction extends ApiAuthAction
{
+ protected $url = null;
+
/**
* Take arguments for running
*
*
* @return boolean success flag
*/
- function prepare($args)
+ protected function prepare(array $args=array())
{
parent::prepare($args);
- $this->url = urldecode($args['url']);
-
- if (!$this->url) {
- $this->clientError(_('No URL.'), 403, 'json');
- return;
- }
+ if ($this->format !== 'json') {
+ $this->clientError('This method currently only serves JSON.', 415);
+ }
- if (!Validate::uri(
- $this->url, array(
- 'allowed_schemes' =>
- array('http', 'https')
- )
- )) {
- $this->clientError(_('Invalid URL.'), 403, 'json');
- return;
- }
-
+ $this->url = urldecode($args['url']);
+
+ if (empty($this->url)) {
+ $this->clientError(_('No URL.'), 403);
+ }
+
+ if (!common_valid_http_url($this->url)) {
+ $this->clientError(_('Invalid URL.'), 403);
+ }
+
return true;
}
*
* @return void
*/
- function handle($args)
+ protected function handle()
{
+ parent::handle();
- $discover = new FeedDiscovery();
+ $discover = new FeedDiscovery();
- try {
- $feeduri = $discover->discoverFromURL($this->url);
- if($feeduri) {
- $huburi = $discover->getHubLink();
- }
- } catch (FeedSubNoFeedException $e) {
- $this->clientError(_('No feed found'), 403, 'json');
- return;
- } catch (FeedSubBadResponseException $e) {
- $this->clientError(_('No hub found'), 403, 'json');
- return;
- }
+ try {
+ $feeduri = $discover->discoverFromURL($this->url);
+ if($feeduri) {
+ $huburi = $discover->getHubLink();
+ }
+ } catch (FeedSubNoFeedException $e) {
+ $this->clientError(_('No feed found'), 403);
+ } catch (FeedSubBadResponseException $e) {
+ $this->clientError(_('No hub found'), 403);
+ }
$hub_status = array();
if ($huburi) {
* @return boolean is read only action?
*/
- function isReadOnly($args)
+ function isReadOnly(array $args=array())
{
return true;
}