server/src/app/Http/Controllers/Api/LexvoController.php
changeset 339 766af1228b05
parent 329 0a2c2ad49d75
child 430 46b4d1971fee
--- 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());
         }