diff -r 4a3899b6a7ed -r 766af1228b05 server/src/app/Http/Controllers/Api/LexvoController.php --- a/server/src/app/Http/Controllers/Api/LexvoController.php Sun Oct 16 22:23:31 2016 +0530 +++ b/server/src/app/Http/Controllers/Api/LexvoController.php Sun Oct 16 23:19:57 2016 +0530 @@ -8,6 +8,9 @@ use CorpusParole\Services\LexvoResolverInterface; use CorpusParole\Services\LexvoResolverException; +use CorpusParole\Libraries\Filters\CorpusFilterManager; +use CorpusParole\Libraries\Utils; + class LexvoController extends Controller { public function __construct(LexvoResolverInterface $lexvoResolver) { @@ -23,7 +26,26 @@ public function show($id) { try { - return response()->json(['lexvoids' => $this->lexvoResolver->getNames(explode(",", $id))]); + $ids = []; + $corpusIds = []; + foreach(explode(",", $id) as $idStr) { + if(Utils::startsWith($idStr, config('corpusparole.language_corpus_node_prefix'))) { + $corpusIds[] = $idStr; + } else { + $ids[] = $idStr; + } + } + $lexvosNames = $this->lexvoResolver->getNames($ids); + $corpusNames = array_reduce($corpusIds, function($res,$cid) { + $cNode = CorpusFilterManager::getLanguageNode($cid); + if(is_null($cNode)) { + $res[$cid] = null; + } else { + $res[$cid] = $cNode['name']; + } + return $res; + }, []); + return response()->json(['lexvoids' => array_merge($lexvosNames, $corpusNames)]); } catch (LexvoResolverException $e) { abort(500, $e->getMessage()); }