server/src/app/Http/Controllers/Sparql/SparqlClientController.php
changeset 405 f239c8c5bb94
parent 389 2204faa0b41a
child 531 48f5380c26d0
equal deleted inserted replaced
404:0a5eef6ad2fe 405:f239c8c5bb94
    57 
    57 
    58     public function getSparqlClient($timeout = null) {
    58     public function getSparqlClient($timeout = null) {
    59         if(is_null($timeout)) {
    59         if(is_null($timeout)) {
    60             $timeout = config('corpusparole.sparql_client_timeout');
    60             $timeout = config('corpusparole.sparql_client_timeout');
    61         }
    61         }
    62         $queryUrl = config('corpusparole.sesame_query_url');
    62         $queryUrl = config('corpusparole.rdf4j_query_url');
    63         if($timeout > 0) {
    63         if($timeout > 0) {
    64             $queryUrl = $queryUrl .
    64             $queryUrl = $queryUrl .
    65                 ((strlen(parse_url($queryUrl, PHP_URL_QUERY)) > 0)?"&":"?").
    65                 ((strlen(parse_url($queryUrl, PHP_URL_QUERY)) > 0)?"&":"?").
    66                 "timeout=$timeout";
    66                 "timeout=$timeout";
    67         }
    67         }
    68         return new \EasyRdf\Sparql\Client($queryUrl, config('corpusparole.sesame_update_url'));
    68         return new \EasyRdf\Sparql\Client($queryUrl, config('corpusparole.rdf4j_update_url'));
    69     }
    69     }
    70 
    70 
    71     // display form
    71     // display form
    72     public function index() {
    72     public function index() {
    73         return view('sparql/sparqlClientForm');
    73         return view('sparql/sparqlClientForm');
   272             $headers['Accept'] = $format;
   272             $headers['Accept'] = $format;
   273         }
   273         }
   274 
   274 
   275         $queryParams = $request->all();
   275         $queryParams = $request->all();
   276         $queryParams['timeout'] = config('corpusparole.sparql_client_timeout');
   276         $queryParams['timeout'] = config('corpusparole.sparql_client_timeout');
   277         $queryUrl = config('corpusparole.sesame_query_url');
   277         $queryUrl = config('corpusparole.rdf4j_query_url');
   278 
   278 
   279         try {
   279         try {
   280             $sesameResp = $this->httpClient->post($queryUrl, ['form_params' => $queryParams, 'headers' => $headers]);
   280             $rdf4jResp = $this->httpClient->post($queryUrl, ['form_params' => $queryParams, 'headers' => $headers]);
   281         } catch(\GuzzleHttp\Exception\ServerException $exception) {
   281         } catch(\GuzzleHttp\Exception\ServerException $exception) {
   282             if($exception->getCode() == 503) {
   282             if($exception->getCode() == 503) {
   283                 $this->abort(408, "Time-out causé par la requête SPARQL", $exception);
   283                 $this->abort(408, "Time-out causé par la requête SPARQL", $exception);
   284             } else {
   284             } else {
   285                 $this->abort(500, "Problème lors de la requête SPARQL", $exception);
   285                 $this->abort(500, "Problème lors de la requête SPARQL", $exception);
   295             $this->abort($exception->getCode(), $abortMessage, $exception);
   295             $this->abort($exception->getCode(), $abortMessage, $exception);
   296         } catch(\Exception $exception) {
   296         } catch(\Exception $exception) {
   297             $this->abort(500, "Erreur serveur lors de la requête", $exception);
   297             $this->abort(500, "Erreur serveur lors de la requête", $exception);
   298         }
   298         }
   299 
   299 
   300         $resp = response((string)$sesameResp->getBody(), $sesameResp->getStatusCode());
   300         $resp = response((string)$rdf4jResp->getBody(), $rdf4jResp->getStatusCode());
   301         foreach ($sesameResp->getHeaders() as $name => $values) {
   301         foreach ($rdf4jResp->getHeaders() as $name => $values) {
   302             if($name != 'Transfer-Encoding') {
   302             if($name != 'Transfer-Encoding') {
   303                 $resp->header($name, $values);
   303                 $resp->header($name, $values);
   304             }
   304             }
   305         }
   305         }
   306 
   306