src/Controller/TestController.php line 75

Open in your IDE?
  1. <?php
  2. namespace App\Controller;
  3. use App\Feeds\FeedType;
  4. use App\Feeds\Jurgiokepure;
  5. use App\Feeds\ManoSeimasAgendaFraction;
  6. use App\Feeds\ManoSeimasAgendaPerson;
  7. use App\Feeds\ManoSeimasComittee;
  8. use App\Feeds\ManoSeimasLaws;
  9. use App\Feeds\ManoSeimasLegislation;
  10. use App\Feeds\ManoSeimasPermits;
  11. use App\Feeds\ManoSeimasProjects;
  12. use App\Feeds\SkaidrumasDefenceCompanies;
  13. use App\Feeds\SkaidrumasGovernmentCompanies;
  14. use App\Feeds\SkaidrumasPrivateCompanies;
  15. use App\Feeds\SkaidrumasSuppliers;
  16. use App\Feeds\Stirna;
  17. use App\Feeds\TransparencyPosts;
  18. use App\Feeds\TransparencyPostsEn;
  19. use App\Manager\ElasticManager;
  20. use App\Manager\Importer;
  21. use http\Client\Response;
  22. use Symfony\Component\HttpFoundation\Request;
  23. use Symfony\Component\HttpFoundation\JsonResponse;
  24. use Symfony\Component\Routing\Annotation\Route;
  25. use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
  26. class TestController extends AbstractController
  27. {
  28.     /**
  29.      * @Route("/", name="homepage")
  30.      */
  31.     public function test(ElasticManager $elasticImporter $importer): Response
  32.     {
  33. //        $importer->import(new ManoSeimasComittee());
  34.         $importer->import(new TransparencyPosts());
  35.         $importer->import(new TransparencyPostsEn());
  36.         $elastic->createIndex();
  37.         $elastic->populate();
  38.         die();
  39.         $importer->import(new Jurgiokepure());
  40.         $importer->import(new ManoSeimasAgendaFraction());
  41.         $importer->import(new ManoSeimasAgendaPerson());
  42.         $importer->import(new ManoSeimasComittee());
  43.         $importer->import(new ManoSeimasLaws());
  44.         $importer->import(new ManoSeimasLegislation());
  45.         $importer->import(new ManoSeimasPermits());
  46.         $importer->import(new SkaidrumasDefenceCompanies());
  47.         $importer->import(new SkaidrumasGovernmentCompanies());
  48.         $importer->import(new SkaidrumasPrivateCompanies());
  49.         $importer->import(new SkaidrumasSuppliers());
  50.         $importer->import(new Stirna());
  51.         $importer->import(new TransparencyPosts());
  52.         $elastic->createIndex();
  53.         $elastic->populate();
  54.         return $this->render('test.html.twig');
  55.     }
  56.     /**
  57.      * @Route("/test_search", name="test_search")
  58.      */
  59.     public function testSearch()
  60.     {
  61.         return $this->render('search.html.twig');
  62.     }
  63.     /**
  64.      * @Route("/test_search/{search}/{language}", name="test_search_process")
  65.      */
  66.     public function testSearchProcess(string $searchElasticManager $elasticstring $language)
  67.     {
  68.         if ($language === 'en') {
  69.             // Do not include this one
  70.             $languageSource 'Transparency.lt';
  71.         } else if ($language === 'lt') {
  72.             $languageSource 'Transparency.lt/en';
  73.         }
  74.         $groups = [
  75.             $elastic->searchByGroup($searchFeedType::GROUP_PERSON$languageSource),
  76.             $elastic->searchByGroup($searchFeedType::GROUP_COMPANY$languageSource),
  77.             $elastic->searchByGroup($searchFeedType::GROUP_COMMITTEE$languageSource),
  78.             $elastic->searchByGroup($searchFeedType::GROUP_INSTITUTION$languageSource),
  79.             $elastic->searchByGroup($searchFeedType::GROUP_LAWS$languageSource),
  80.             $elastic->searchByGroup($searchFeedType::GROUP_OTHER$languageSource),
  81.         ];
  82.         $total 0;
  83.         foreach ($groups as $group) {
  84.             $total += $group['total'];
  85.         }
  86.         $response = new JsonResponse();
  87.         $response->headers->set('Access-Control-Allow-Origin''*');
  88.         $response->headers->set('Access-Control-Allow-Headers''*');
  89.         $response->setData(['result'=> $this->renderView('result-group.html.twig', [
  90.             'groups' => $groups,
  91.             'total' => $total,
  92.             'search' => $search,
  93.             'itemsPerPage' => 6,
  94.             'language' => $language,
  95.         ])]);
  96.         return $response;
  97.     }
  98.     /**
  99.      * @Route("/test_search_list/{page<\d+>?1}", name="test_search_list")
  100.      */
  101.     public function testSearchList(Request $requestElasticManager $elasticint $page)
  102.     {
  103.         $search $request->get('search');
  104.         $language $request->get('lang');
  105.         if ($language === 'en') {
  106.             // Do not include this one
  107.             $languageSource 'Transparency.lt';
  108.         } else if ($language === 'lt') {
  109.             $languageSource 'Transparency.lt/en';
  110.         }
  111.         if ($language === 'en') {
  112.             $groups = [
  113.                 $elastic->searchByGroup($searchFeedType::GROUP_OTHER$languageSource110),
  114.                 $elastic->searchByGroup($searchFeedType::GROUP_PERSON$languageSource110),
  115.                 $elastic->searchByGroup($searchFeedType::GROUP_COMPANY$languageSource110),
  116.                 $elastic->searchByGroup($searchFeedType::GROUP_COMMITTEE$languageSource110),
  117.                 $elastic->searchByGroup($searchFeedType::GROUP_INSTITUTION$languageSource110),
  118.                 $elastic->searchByGroup($searchFeedType::GROUP_LAWS$languageSource110),
  119.             ];
  120.         } else {
  121.             $groups = [
  122.                 $elastic->searchByGroup($searchFeedType::GROUP_PERSON$languageSource110),
  123.                 $elastic->searchByGroup($searchFeedType::GROUP_COMPANY$languageSource110),
  124.                 $elastic->searchByGroup($searchFeedType::GROUP_COMMITTEE$languageSource110),
  125.                 $elastic->searchByGroup($searchFeedType::GROUP_INSTITUTION$languageSource110),
  126.                 $elastic->searchByGroup($searchFeedType::GROUP_LAWS$languageSource110),
  127.                 $elastic->searchByGroup($searchFeedType::GROUP_OTHER$languageSource110),
  128.             ];
  129.         }
  130.         $total 0;
  131.         foreach ($groups as $group) {
  132.             $total += $group['total'];
  133.         }
  134.         return $this->render('result_list.html.twig', [
  135.             'groups' => $groups,
  136.             'total' => $total,
  137.             'search' => $search,
  138.             'itemsPerPage' => 10,
  139.             'language' => $language,
  140.         ]);
  141.     }
  142.     /**
  143.      * @Route("/group_search_list/{group}/{page<\d+>?1}", name="group_search_list")
  144.      */
  145.     public function groupSearchList(Request $requestElasticManager $elasticstring $groupint $page)
  146.     {
  147.         $search $request->get('search');
  148.         $groupData FeedType::getGroupData($group);
  149.         if (!$groupData) {
  150.             return $this->render('group_result_list.html.twig', [
  151.                 'search' => '',
  152.                 'group' => '',
  153.                 'page' => $page,
  154.                 'items' => [],
  155.                 'pagination' => [],
  156.                 'total' => 0,
  157.             ]);
  158.         }
  159.         $result $elastic->searchByGroup($search$groupData$page10);
  160.         return $this->render('group_result_list.html.twig', [
  161.             'search' => $search,
  162.             'group' => $group,
  163.             'groupTitle' => $groupData['title'],
  164.             'page' => $page,
  165.             'items' => $result['items'],
  166.             'pagination' => $result['pagination'],
  167.             'total' => $result['total'],
  168.         ]);
  169.     }
  170. }