src/Controller/Home/HomeController.php line 30

Open in your IDE?
  1. <?php
  2. namespace App\Controller\Home;
  3. use Symfony\Component\HttpFoundation\JsonResponse;
  4. use Symfony\Component\HttpFoundation\Request;
  5. use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
  6. use Symfony\Component\HttpFoundation\Response;
  7. use Symfony\Component\HttpFoundation\Session\SessionInterface;
  8. use Symfony\Component\Routing\Annotation\Route;
  9. /**
  10.  * @Route("/", name="home")
  11.  */
  12. class HomeController extends AbstractController
  13. {
  14.     public $session;
  15.     public $appUrl;
  16.     public function __construct(
  17.         SessionInterface $session
  18.     )
  19.     {
  20.         $this->session $session;
  21.         $this->appUrl $_ENV['APP_URL'];
  22.     }
  23.     public function ssr(Request $request) {
  24.         $appurl $_SERVER['APP_URL'];
  25.         $ssrurl $_SERVER['SSR_URL'];
  26.         $url $request->getUri();
  27.         $url str_replace($appurl$ssrurl$url);
  28.         $my_query_string http_build_query($request->query->all());
  29.         $curl curl_init($url);
  30.         curl_setopt($curlCURLOPT_HEADER1); // Include headers
  31.         curl_setopt($curlCURLOPT_RETURNTRANSFER1); // Return data as a string
  32.         // curl_setopt($curl, CURLOPT_PORT, 3000);
  33.         curl_setopt($curlCURLOPT_IPRESOLVECURL_IPRESOLVE_V4 );
  34.         $result curl_exec($curl);
  35.         $status_code curl_getinfo($curlCURLINFO_HTTP_CODE);
  36.         $content_type curl_getinfo($curlCURLINFO_CONTENT_TYPE);
  37.         $header_size curl_getinfo($curlCURLINFO_HEADER_SIZE);
  38.         $header substr($result0$header_size);
  39.         $body substr($result$header_size);
  40.         curl_close($curl);
  41.         // dd($result);
  42.         $response $this->render('home/ssr.html.twig', ['content' => $body]);
  43.         $response->headers->set('content-type'$content_type);
  44.         return $response;
  45.     }
  46.     /**
  47.      * @Route("register", name="register")
  48.      */
  49.     public function register()
  50.     {
  51.         // return $this->render('home/account.html.twig');
  52.     }
  53.     /**
  54.      * @Route("login",name="login")
  55.      */
  56.     public function login()
  57.     {
  58.         // return $this->render('home/login.html.twig');
  59.     }
  60.     /**
  61.      * @Route("logout",name="logout")
  62.      */
  63.     public function logout()
  64.     {
  65.         // $this->session->remove("_token");
  66.     }
  67.     /**
  68.      * @Route("password/reset",name="password.reset")
  69.      */
  70.     public function resetPassword()
  71.     {
  72.         // return $this->render('home/resetpassword.html.twig');
  73.     }
  74.     /**
  75.      * @Route("password/congrats",name="password/congrats")
  76.      */
  77.     public function PasswordUpdate()
  78.     {
  79.         // return $this->render('home/congrats.html.twig');
  80.     }
  81.     /**
  82.      * @Route("kullanici-sozlesmesi",name="privacy")
  83.      */
  84.     public function Privacy()
  85.     {
  86.         $token $this->isUserLogin();
  87.         $curl curl_init();
  88.         curl_setopt_array($curl, array(
  89.             CURLOPT_URL => $this->appUrl."api/v1/static/content/kullanici",
  90.             CURLOPT_RETURNTRANSFER => true,
  91.             CURLOPT_ENCODING => "",
  92.             CURLOPT_MAXREDIRS => 10,
  93.             CURLOPT_TIMEOUT => 60,
  94.             CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  95.             CURLOPT_CUSTOMREQUEST => "GET",
  96.             CURLOPT_HTTPHEADER => array(
  97.                 "cache-control: no-cache",
  98.             ),
  99.         ));
  100.         $response curl_exec($curl);
  101.         $err curl_error($curl);
  102.         curl_close($curl);
  103.         if ($err) {
  104.             return $this->forward('App\Controller\Home\HomeController::p404');
  105.         } else {
  106.             $response json_decode($response);
  107.             dump($response);
  108.             // return $this->render('home/privacy.html.twig',
  109.             //     [
  110.             //         'static' => $response->data,
  111.             //         'token' => $token
  112.             //     ]
  113.             //     );
  114.         }
  115.     }
  116.     /**
  117.      * @Route("gizlilik-sozlesmesi",name="agreement")
  118.      */
  119.     public function Agreement()
  120.     {
  121.         $token $this->isUserLogin();
  122.         $curl curl_init();
  123.         curl_setopt_array($curl, array(
  124.             CURLOPT_URL => $this->appUrl."api/v1/static/content/gizlilik",
  125.             CURLOPT_RETURNTRANSFER => true,
  126.             CURLOPT_ENCODING => "",
  127.             CURLOPT_MAXREDIRS => 10,
  128.             CURLOPT_TIMEOUT => 60,
  129.             CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  130.             CURLOPT_CUSTOMREQUEST => "GET",
  131.             CURLOPT_HTTPHEADER => array(
  132.                 "cache-control: no-cache",
  133.             ),
  134.         ));
  135.         $response curl_exec($curl);
  136.         $err curl_error($curl);
  137.         curl_close($curl);
  138.         if ($err) {
  139.             return $this->forward('App\Controller\Home\HomeController::p404');
  140.         } else {
  141.             $response json_decode($response);
  142.             // return $this->render('home/agreement.html.twig',
  143.             //     [
  144.             //         'static' => $response->data,
  145.             //         'token' => $token
  146.             //     ]
  147.             // );
  148.         }
  149.     }
  150.     /**
  151.      * @Route("coffeePhotos-fali-bakan-falcilar", name="coffeePhotos-fali-bakan-falcilar" , options={"utf8": true})
  152.      * @return Response
  153.      */
  154.     public function fortuneCategoryKahveFali()
  155.     {
  156.         $token $this->isUserLogin();
  157.         $data $this->getFortuneTellersBySlug("coffeePhotos-fali");
  158.         $desc $this->getFortuneCategories();
  159.         // return $this->render('home/category.html.twig',
  160.         //     [
  161.         //         'token' => $token,
  162.         //         'tellers' => $data,
  163.         //         'catName' => "Kahve Falı",
  164.         //         'desc' => $desc,
  165.         //         'keywords' => "Kahve falı bak, coffeePhotos falıma bakmak istiyorum, kafe falı, gerçek fal baktır, tece falı, coffeePhotos falı ne zaman aşık olucam, coffeePhotos falında her şey cıkar mı? Kahve falının incelikleri, gerçek coffeePhotos falı, ücretsiz coffeePhotos falı, ücretsiz",
  166.         //         'metaDesc' => "Kahve falı bakan gerçek falcılar yamiba.com’da! Telvelerin  anlamını merak ediyor musun? Hemen coffeePhotos falı baktır çok şaşıracaksın."
  167.         //     ]
  168.         // );
  169.     }
  170.     /**
  171.      * @Route("tarot-fali-bakan-falcilar", name="tarot-fali-bakan-falcilar" , options={"utf8": true})
  172.      * @return Response
  173.      */
  174.     public function fortuneCategoryTarotFali()
  175.     {
  176.         $token $this->isUserLogin();
  177.         $data $this->getFortuneTellersBySlug("tarot-fali");
  178.         $desc $this->getFortuneCategories();
  179.         // return $this->render('home/category.html.twig',
  180.         //     [
  181.         //         'token' => $token,
  182.         //         'tellers' => $data,
  183.         //         'catName' => "Tarot Falı",
  184.         //         'desc' => $desc,
  185.         //         'keywords' => "tarot falı nasıl bakılır, tarot falı nedir? Tarot falı bakan falcılar, en iyi tarotcu, tarot falı cıkar mı, Tarot falı kartları nelerdir, tarot aşk falı, tarot falı bakan en iyi falcılar, kart falı, kart falı bak, kart falı baktır, ücretsiz tarot, ne zaman evlenicem",
  186.         //         'metaDesc' => "Tarot falı bakan gerçek falcılar yamiba.com’da! Kartların anlamını ve geleceğini merak ediyor musun?"
  187.         //     ]
  188.         // );
  189.     }
  190.     /**
  191.      * @Route("katina-fali-bakan-falcilar", name="katina-fali-bakan-falcilar" , options={"utf8": true})
  192.      * @return Response
  193.      */
  194.     public function fortuneCategoryKatinaFali()
  195.     {
  196.         $token $this->isUserLogin();
  197.         $data $this->getFortuneTellersBySlug("katina-fali");
  198.         $desc $this->getFortuneCategories();
  199.         // return $this->render('home/category.html.twig',
  200.         //     [
  201.         //         'token' => $token,
  202.         //         'tellers' => $data,
  203.         //         'catName' => "Katina Falı",
  204.         //         'desc' => $desc,
  205.         //         'keywords' => "katina falı nasıl bakılır, Katina aşk falı çıkar mı, Katina falı bakan falcılar en iyi falcılar yamiba’da, yamiba’da katina falı baktır. Aşk falı,gerçek fal baktır, katina kart falı, iişki açılımı kader açılımı yamiba katina falı bakan en iyi falcılar, para açılımı, ne zaman evlenicem katina, ücretsiz katina",
  206.         //         'metaDesc' => "Katina aşk falı bakan gerçek falcılar yamiba.com’da! Katina kartlarının  anlamını merak ediyor musun? Hemen katina aşk falı baktır çok şaşıracaksın."
  207.         //     ]
  208.         // );
  209.     }
  210.     /**
  211.      * @Route("ruya-yorumu-bakan-falcilar", name="ruya-yorumu-bakan-falcilar" , options={"utf8": true})
  212.      * @return Response
  213.      */
  214.     public function fortuneCategoryRuyaYorumu()
  215.     {
  216.         $token $this->isUserLogin();
  217.         $data $this->getFortuneTellersBySlug("ruya-yorumu");
  218.         $desc $this->getFortuneCategories();
  219.         // return $this->render('home/category.html.twig',
  220.         //     [
  221.         //         'token' => $token,
  222.         //         'tellers' => $data,
  223.         //         'catName' => "Rüya Yorumu",
  224.         //         'desc' => $desc,
  225.         //         'keywords' => "rüya yorumu anlamı, riyada görmek ne demek, rüyada görmek ne anlama geliyor, rüya tabirleri, rüya falcısı, ruya yorumuna bak, rüya falım, rüya yorumum",
  226.         //         'metaDesc' => "Rüya yorumu bakan gerçek falcılar yamiba.com’da! Rüyalarının anlamını merak ediyor musun?"
  227.         //     ]
  228.         // );
  229.     }
  230.     /**
  231.      * @Route("iliski-danismani-bakan-falcilar", name="iliski-danismani-bakan-falcilar" , options={"utf8": true})
  232.      * @return Response
  233.      */
  234.     public function fortuneCategoryIliskiDanismani()
  235.     {
  236.         $token $this->isUserLogin();
  237.         $data $this->getFortuneTellersBySlug("iliski-danismani");
  238.         $desc $this->getFortuneCategories();
  239.         // return $this->render('home/category.html.twig',
  240.         //     [
  241.         //         'token' => $token,
  242.         //         'tellers' => $data,
  243.         //         'catName' => "İlişki Danışmanı",
  244.         //         'desc' => $desc,
  245.         //         'keywords' => "İlişki danışmanı falcılar, mutlu bir ilişki nasıl olmalı, sevgilimle nasıl barısırım, sevgilim beni seviyor mu,ask hayatım, sevgilim",
  246.         //         'metaDesc' => "İlişki danışmanı bakan gerçek falcılar yamiba.com’da! İlişkindeki sorunlaru hemen çözmek için danışmanlarımıza başvur, çok şaşıracaksın."
  247.         //     ]
  248.         // );
  249.     }
  250.     /**
  251.      * @Route("el-fali-bakan-falcilar", name="el-fali-bakan-falcilar" , options={"utf8": true})
  252.      * @return Response
  253.      */
  254.     public function fortuneCategoryElFali()
  255.     {
  256.         $token $this->isUserLogin();
  257.         $data $this->getFortuneTellersBySlug("el-fali");
  258.         $desc $this->getFortuneCategories();
  259.         // return $this->render('home/category.html.twig',
  260.         //     [
  261.         //         'token' => $token,
  262.         //         'tellers' => $data,
  263.         //         'catName' => "El Falı",
  264.         //         'desc' => $desc,
  265.         //         'keywords' => "El falı nasıl bakılır, El falı bakan falcılar, El falı bakmanın kuralları, el falı bakmanın incelikleri, el falı çıkar mı, el falı hangi elle bakılır, el falı ile geleceğini öğren, el falı bakan falcılar, elfalı fiyatları, en iyi el falı bakanfalcılar yamiba’da, el falı bak, el falı kaç lira, ne zaman evlenicem",
  266.         //         'metaDesc' => "El falı bakan gerçek falcılar yamiba.com’da! Elindeki çizgilerin anlamını merak ediyor musun? Hemen el falı baktır çok şaşıracaksın."
  267.         //     ]
  268.         // );
  269.     }
  270.     /**
  271.      * @Route("astroloji-bakan-falcilar", name="astroloji-bakan-falcilar" , options={"utf8": true})
  272.      * @return Response
  273.      */
  274.     public function fortuneCategoryAstroloji()
  275.     {
  276.         $token $this->isUserLogin();
  277.         $data $this->getFortuneTellersBySlug("astroloji");
  278.         $desc $this->getFortuneCategories();
  279.         // return $this->render('home/category.html.twig',
  280.         //     [
  281.         //         'token' => $token,
  282.         //         'tellers' => $data,
  283.         //         'catName' => "Astroloji Falı",
  284.         //         'desc' => $desc,
  285.         //         'keywords' => "astroloji falı, burç falı, 12 burç falı, burclar, astrologlar, en iyi astroloji falı bakan falcılar, burç uyumlarına bak, sevgilimle buç uyumu, yüselen burc nedir",
  286.         //         'metaDesc' => "Astroloji falı yorumu bakan gerçek falcılar yamiba.com’da! Burcunnun özelliklerini ve geleceğini merak ediyor musun?"
  287.         //     ]
  288.         // );
  289.     }
  290.     /**
  291.      * @Route("falcilar", name="category.all" , options={"utf8": true})
  292.      * @return Response
  293.      */
  294.     public function fortuneCategoryAll()
  295.     {
  296.         $token $this->isUserLogin();
  297.         $data $this->getFortuneTellersAll();
  298.         
  299.         dump($data);
  300.         // return $this->render('home/category-all.html.twig',
  301.         //     [
  302.         //         'token' => $token,
  303.         //         'tellers' => $data,
  304.         //     ]
  305.         // );
  306.     }
  307.     /**
  308.      * @Route("hakkimizda", name="about.us" , options={"utf8": true})
  309.      * @return Response
  310.      */
  311.     public function aboutUs()
  312.     {
  313.         $token $this->isUserLogin();
  314.         $desc $this->getFortuneCategories();
  315.         // return $this->render('home/about.html.twig',
  316.         //     [
  317.         //         'token' => $token,
  318.         //         'desc' => $desc
  319.         //     ]
  320.         // );
  321.     }
  322.     /**
  323.      * @Route("p404",name="p404")
  324.      */
  325.     public function p404()
  326.     {
  327.         $token $this->isUserLogin();
  328.         return $this->render('home/p404.html.twig', ['token' => $token]);
  329.     }
  330.     /**
  331.      * @Route("nasil-kullanirim",name="how-to")
  332.      */
  333.     public function howTo()
  334.     {
  335.         $token $this->isUserLogin();
  336.         // return $this->render('home/how-to.html.twig', ['token' => $token]);
  337.     }
  338.     /**
  339.      * @Route("sikca-sorulan-sorular",name="faq")
  340.      */
  341.     public function Faqs()
  342.     {
  343.         $token $this->isUserLogin();
  344.         $API_Name "v1/faq";
  345.         $data $this->ApiGetMethod($API_Name);
  346.         // return $this->render('home/faq.html.twig', ["faqs" => $data,'token' => $token]);
  347.     }
  348.     private function ApiGetMethod($api_name)
  349.     {
  350.         $url $this->appUrl."api/" $api_name;
  351.         $ch curl_init();
  352.         curl_setopt($chCURLOPT_URL$url);
  353.         curl_setopt($chCURLOPT_RETURNTRANSFERtrue);
  354.         curl_setopt($chCURLOPT_FOLLOWLOCATIONtrue);
  355.         $data curl_exec($ch);
  356.         curl_close($ch);
  357.         $data json_decode($data);
  358.         return $data;
  359.     }
  360.     private function getFortuneTellersBySlug($slug){
  361.         $curl curl_init();
  362.         curl_setopt_array($curl, array(
  363.             CURLOPT_URL => $this->appUrl."api/v1/category/$slug/fortune/tellers",
  364.             CURLOPT_RETURNTRANSFER => true,
  365.             CURLOPT_ENCODING => "",
  366.             CURLOPT_MAXREDIRS => 10,
  367.             CURLOPT_TIMEOUT => 30,
  368.             CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  369.             CURLOPT_CUSTOMREQUEST => "GET",
  370.             CURLOPT_POSTFIELDS => "",
  371.             CURLOPT_HTTPHEADER => array(
  372.                 "cache-control: no-cache",
  373.                 "content-type: application/x-www-form-urlencoded"
  374.             ),
  375.         ));
  376.         $response curl_exec($curl);
  377.         $err curl_error($curl);
  378.         curl_close($curl);
  379.         if ($err) {
  380.             dump($err);
  381.             return false;
  382.         } else {
  383.             return json_decode($response);
  384.         }
  385.     }
  386.     private function getFortuneTellersAll(){
  387.         $curl curl_init();
  388.         curl_setopt_array($curl, array(
  389.             CURLOPT_URL => $this->appUrl."api/v1/all/fortune/tellers",
  390.             CURLOPT_RETURNTRANSFER => true,
  391.             CURLOPT_ENCODING => "",
  392.             CURLOPT_MAXREDIRS => 10,
  393.             CURLOPT_TIMEOUT => 30,
  394.             CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  395.             CURLOPT_CUSTOMREQUEST => "GET",
  396.             CURLOPT_HTTPHEADER => array(
  397.                 "cache-control: no-cache",
  398.                 "postman-token: ec908936-9ebf-0ae6-23f2-b211cc207c0a"
  399.             ),
  400.         ));
  401.         $response curl_exec($curl);
  402.         $err curl_error($curl);
  403.         curl_close($curl);
  404.         if ($err) {
  405. //            dump($err);exit;
  406.             return false;
  407.         } else {
  408. //            dump($response);exit;
  409.             return json_decode($response);
  410.         }
  411.     }
  412.     
  413.     private function getFortuneCategories(){
  414.         $curl curl_init();
  415.         curl_setopt_array($curl, array(
  416.             CURLOPT_URL => $this->appUrl."api/v1/fortune/teller/categories",
  417.             CURLOPT_RETURNTRANSFER => true,
  418.             CURLOPT_ENCODING => "",
  419.             CURLOPT_MAXREDIRS => 10,
  420.             CURLOPT_TIMEOUT => 30,
  421.             CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  422.             CURLOPT_CUSTOMREQUEST => "GET",
  423.             CURLOPT_HTTPHEADER => array(
  424.                 "cache-control: no-cache",
  425.                 "postman-token: ec908936-9ebf-0ae6-23f2-b211cc207c0a"
  426.             ),
  427.         ));
  428.         $response curl_exec($curl);
  429.         $err curl_error($curl);
  430.         curl_close($curl);
  431.         if ($err) {
  432. //            dump($err);exit;
  433.             return false;
  434.         } else {
  435. //            dump($response);exit;
  436.             return json_decode($response);
  437.         }
  438.     }
  439.     /**
  440.      * @Route("login", name="login")
  441.      * @param Request $request
  442.      * @return JsonResponse
  443.      */
  444.     public function loginForm(Request $request): JsonResponse
  445.     {
  446.         $process $request->request->get('process'false);
  447.         if ($process) {
  448. //            var_dump($process);
  449.         } else {
  450.             $errorArray = array(
  451.                 'error' => true
  452.             );
  453.             return new JsonResponse($errorArray);
  454.         }
  455.         $email $request->request->get('loginemail');
  456.         $password $request->request->get('loginpassword');
  457.         $endpoint_url $this->appUrl."api/token/get";
  458.         // Sets our destination URL
  459. // Creates our data array that we want to post to the endpoint
  460.         $data_to_post = [
  461.             'email' => $email,
  462.             'password' => $password,
  463.         ];
  464. // Sets our options array so we can assign them all at once
  465.         $options = [
  466.             CURLOPT_URL => $endpoint_url,
  467.             CURLOPT_POST => true,
  468.             CURLOPT_POSTFIELDS => $data_to_post,
  469.         ];
  470. // Initiates the cURL object
  471.         $curl curl_init();
  472. // Assigns our options
  473.         curl_setopt_array($curl$options);
  474.         curl_setopt($curlCURLOPT_RETURNTRANSFERtrue);
  475. // Executes the cURL POST
  476.         $results curl_exec($curl);
  477. // Be kind, tidy up!
  478.         curl_close($curl);
  479.         $decodedResult json_decode($resultstrue);
  480.         if (isset($decodedResult['token'])) {
  481.             $this->session->set("_token"$decodedResult['token']);
  482.             $this->session->set("_email"$decodedResult['data']['email']);
  483.         }
  484.         return new JsonResponse($decodedResult);
  485.     }
  486.     private function postAPICall($endPoint$dataToPost = array()){
  487.         $endpoint_url $this->appUrl."{$endPoint}";
  488.         // Sets our destination URL
  489. // Creates our data array that we want to post to the endpoint
  490.         $data_to_post $dataToPost;
  491. // Sets our options array so we can assign them all at once
  492.         $options = [
  493.             CURLOPT_URL => $endpoint_url,
  494.             CURLOPT_POST => true,
  495.             CURLOPT_POSTFIELDS => $data_to_post,
  496.         ];
  497. // Initiates the cURL object
  498.         $curl curl_init();
  499. // Assigns our options
  500.         curl_setopt_array($curl$options);
  501.         curl_setopt($curlCURLOPT_RETURNTRANSFERtrue);
  502. // Executes the cURL POST
  503.         $results curl_exec($curl);
  504. // Be kind, tidy up!
  505.         curl_close($curl);
  506.         return$results;
  507.     }
  508.     private function isUserLogin()
  509.     {
  510.         $loginStatus $this->session->get('_token');
  511.         if ($loginStatus == null) {
  512.             return false;
  513.         } else {
  514.             return $loginStatus;
  515.         }
  516.     }
  517. }