server/src/app/Http/Controllers/Api/LanguageController.php
changeset 126 e87a340711a4
child 377 52169c718513
equal deleted inserted replaced
125:e550b10fe3ca 126:e87a340711a4
       
     1 <?php
       
     2 
       
     3 namespace CorpusParole\Http\Controllers\Api;
       
     4 
       
     5 // use Illuminate\Http\Request;
       
     6 // use CorpusParole\Http\Requests;
       
     7 use CorpusParole\Http\Controllers\Controller;
       
     8 
       
     9 use CorpusParole\Libraries\Sparql\SparqlClient;
       
    10 
       
    11 
       
    12 class LanguageController extends Controller
       
    13 {
       
    14     private $sparqlClient = null;
       
    15 
       
    16     public function __construct(SparqlClient $sparqlClient) {
       
    17         $this->sparqlClient = $sparqlClient;
       
    18     }
       
    19 
       
    20     /**
       
    21      * Display the specified resource.
       
    22      *
       
    23      * @return \Illuminate\Http\Response
       
    24      */
       
    25     public function index()
       
    26     {
       
    27 
       
    28         $query = "select ?lang (count(?lang) as ?count) where {
       
    29             ?s a <http://www.europeana.eu/schemas/edm/ProvidedCHO>.
       
    30             ?s <http://purl.org/dc/elements/1.1/language> ?lang
       
    31         }
       
    32         GROUP BY ?lang
       
    33         ORDER BY DESC(?count)";
       
    34 
       
    35         $docs = $this->sparqlClient->query($query);
       
    36 
       
    37         $languages = [];
       
    38         foreach ($docs as $row) {
       
    39             $languages[$row->lang->getUri()] = $row->count->getValue();
       
    40         }
       
    41 
       
    42         return response()->json(['languages' => $languages ]);
       
    43 
       
    44     }
       
    45 
       
    46 }