| 
						 | 
						- <?php
 - use Symfony\Component\HttpFoundation\Request;
 - use Symfony\Component\HttpFoundation\Response;
 - 
 - class Feeds {
 - 
 -   public $http;
 -   private $_pretty = false;
 - 
 -   public function __construct() {
 -     $this->http = new p3k\HTTP();
 -   }
 - 
 -   private function respond(Response $response, $code, $params, $headers=[]) {
 -     $response->setStatusCode($code);
 -     foreach($headers as $k=>$v) {
 -       $response->headers->set($k, $v);
 -     }
 -     $response->headers->set('Content-Type', 'application/json');
 -     $opts = JSON_UNESCAPED_SLASHES;
 -     if($this->_pretty) $opts += JSON_PRETTY_PRINT;
 -     $response->setContent(json_encode($params, $opts)."\n");
 -     return $response;
 -   }
 - 
 -   public function find(Request $request, Response $response) {
 -     $opts = [];
 - 
 -     if($request->get('timeout')) {
 -       $opts['timeout'] = $request->get('timeout');
 -     }
 - 
 -     if($request->get('max_redirects')) {
 -       $opts['max_redirects'] = (int)$request->get('max_redirects');
 -     }
 - 
 -     if($request->get('pretty')) {
 -       $this->_pretty = true;
 -     }
 - 
 -     $url = $request->get('url');
 - 
 -     if(!$url) {
 -       return $this->respond($response, 400, [
 -         'error' => 'missing_url',
 -         'error_description' => 'Provide a URL to fetch'
 -       ]);
 -     }
 - 
 -     $xray = new p3k\XRay();
 -     $xray->http = $this->http;
 -     $res = $xray->feeds($url, $opts);
 - 
 -     return $this->respond($response, !empty($res['error']) ? 400 : 200, $res);
 -   }
 - 
 - }
 
 
  |