*/
class ApiCheckHubAction extends ApiAuthAction
{
+ protected $url = null;
+
/**
* Take arguments for running
*
*
* @return boolean success flag
*/
- function prepare($args)
+ protected function prepare($args)
{
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) {