author | ymh <ymh.work@gmail.com> |
Fri, 14 Oct 2016 01:02:10 +0200 | |
changeset 329 | 0a2c2ad49d75 |
parent 28 | b0b56e0f8c7f |
child 430 | 46b4d1971fee |
permissions | -rw-r--r-- |
28 | 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 |
use CorpusParole\Services\LexvoResolverInterface; |
|
9 |
use CorpusParole\Services\LexvoResolverException; |
|
10 |
||
329
0a2c2ad49d75
Improvce language visualization. Generalize language node selection, change language query parameters, add resolution of node name (corpus-) to lexvo controler
ymh <ymh.work@gmail.com>
parents:
28
diff
changeset
|
11 |
use CorpusParole\Libraries\Filters\CorpusFilterManager; |
0a2c2ad49d75
Improvce language visualization. Generalize language node selection, change language query parameters, add resolution of node name (corpus-) to lexvo controler
ymh <ymh.work@gmail.com>
parents:
28
diff
changeset
|
12 |
use CorpusParole\Libraries\Utils; |
0a2c2ad49d75
Improvce language visualization. Generalize language node selection, change language query parameters, add resolution of node name (corpus-) to lexvo controler
ymh <ymh.work@gmail.com>
parents:
28
diff
changeset
|
13 |
|
28 | 14 |
class LexvoController extends Controller |
15 |
{ |
|
16 |
public function __construct(LexvoResolverInterface $lexvoResolver) { |
|
17 |
$this->lexvoResolver = $lexvoResolver; |
|
18 |
} |
|
19 |
||
20 |
/** |
|
21 |
* Display the specified resource. |
|
22 |
* |
|
23 |
* @param int $id od comma separatedlist of ids |
|
24 |
* @return \Illuminate\Http\Response |
|
25 |
*/ |
|
26 |
public function show($id) |
|
27 |
{ |
|
28 |
try { |
|
329
0a2c2ad49d75
Improvce language visualization. Generalize language node selection, change language query parameters, add resolution of node name (corpus-) to lexvo controler
ymh <ymh.work@gmail.com>
parents:
28
diff
changeset
|
29 |
$ids = []; |
0a2c2ad49d75
Improvce language visualization. Generalize language node selection, change language query parameters, add resolution of node name (corpus-) to lexvo controler
ymh <ymh.work@gmail.com>
parents:
28
diff
changeset
|
30 |
$corpusIds = []; |
0a2c2ad49d75
Improvce language visualization. Generalize language node selection, change language query parameters, add resolution of node name (corpus-) to lexvo controler
ymh <ymh.work@gmail.com>
parents:
28
diff
changeset
|
31 |
foreach(explode(",", $id) as $idStr) { |
0a2c2ad49d75
Improvce language visualization. Generalize language node selection, change language query parameters, add resolution of node name (corpus-) to lexvo controler
ymh <ymh.work@gmail.com>
parents:
28
diff
changeset
|
32 |
if(Utils::startsWith($idStr, config('corpusparole.language_corpus_node_prefix'))) { |
0a2c2ad49d75
Improvce language visualization. Generalize language node selection, change language query parameters, add resolution of node name (corpus-) to lexvo controler
ymh <ymh.work@gmail.com>
parents:
28
diff
changeset
|
33 |
$corpusIds[] = $idStr; |
0a2c2ad49d75
Improvce language visualization. Generalize language node selection, change language query parameters, add resolution of node name (corpus-) to lexvo controler
ymh <ymh.work@gmail.com>
parents:
28
diff
changeset
|
34 |
} else { |
0a2c2ad49d75
Improvce language visualization. Generalize language node selection, change language query parameters, add resolution of node name (corpus-) to lexvo controler
ymh <ymh.work@gmail.com>
parents:
28
diff
changeset
|
35 |
$ids[] = $idStr; |
0a2c2ad49d75
Improvce language visualization. Generalize language node selection, change language query parameters, add resolution of node name (corpus-) to lexvo controler
ymh <ymh.work@gmail.com>
parents:
28
diff
changeset
|
36 |
} |
0a2c2ad49d75
Improvce language visualization. Generalize language node selection, change language query parameters, add resolution of node name (corpus-) to lexvo controler
ymh <ymh.work@gmail.com>
parents:
28
diff
changeset
|
37 |
} |
0a2c2ad49d75
Improvce language visualization. Generalize language node selection, change language query parameters, add resolution of node name (corpus-) to lexvo controler
ymh <ymh.work@gmail.com>
parents:
28
diff
changeset
|
38 |
$lexvosNames = $this->lexvoResolver->getNames($ids); |
0a2c2ad49d75
Improvce language visualization. Generalize language node selection, change language query parameters, add resolution of node name (corpus-) to lexvo controler
ymh <ymh.work@gmail.com>
parents:
28
diff
changeset
|
39 |
$corpusNames = array_reduce($corpusIds, function($res,$cid) { |
0a2c2ad49d75
Improvce language visualization. Generalize language node selection, change language query parameters, add resolution of node name (corpus-) to lexvo controler
ymh <ymh.work@gmail.com>
parents:
28
diff
changeset
|
40 |
$cNode = CorpusFilterManager::getLanguageNode($cid); |
0a2c2ad49d75
Improvce language visualization. Generalize language node selection, change language query parameters, add resolution of node name (corpus-) to lexvo controler
ymh <ymh.work@gmail.com>
parents:
28
diff
changeset
|
41 |
if(is_null($cNode)) { |
0a2c2ad49d75
Improvce language visualization. Generalize language node selection, change language query parameters, add resolution of node name (corpus-) to lexvo controler
ymh <ymh.work@gmail.com>
parents:
28
diff
changeset
|
42 |
$res[$cid] = null; |
0a2c2ad49d75
Improvce language visualization. Generalize language node selection, change language query parameters, add resolution of node name (corpus-) to lexvo controler
ymh <ymh.work@gmail.com>
parents:
28
diff
changeset
|
43 |
} else { |
0a2c2ad49d75
Improvce language visualization. Generalize language node selection, change language query parameters, add resolution of node name (corpus-) to lexvo controler
ymh <ymh.work@gmail.com>
parents:
28
diff
changeset
|
44 |
$res[$cid] = $cNode['name']; |
0a2c2ad49d75
Improvce language visualization. Generalize language node selection, change language query parameters, add resolution of node name (corpus-) to lexvo controler
ymh <ymh.work@gmail.com>
parents:
28
diff
changeset
|
45 |
} |
0a2c2ad49d75
Improvce language visualization. Generalize language node selection, change language query parameters, add resolution of node name (corpus-) to lexvo controler
ymh <ymh.work@gmail.com>
parents:
28
diff
changeset
|
46 |
return $res; |
0a2c2ad49d75
Improvce language visualization. Generalize language node selection, change language query parameters, add resolution of node name (corpus-) to lexvo controler
ymh <ymh.work@gmail.com>
parents:
28
diff
changeset
|
47 |
}, []); |
0a2c2ad49d75
Improvce language visualization. Generalize language node selection, change language query parameters, add resolution of node name (corpus-) to lexvo controler
ymh <ymh.work@gmail.com>
parents:
28
diff
changeset
|
48 |
return response()->json(['lexvoids' => array_merge($lexvosNames, $corpusNames)]); |
28 | 49 |
} catch (LexvoResolverException $e) { |
50 |
abort(500, $e->getMessage()); |
|
51 |
} |
|
52 |
} |
|
53 |
||
54 |
} |