<?php
namespace App\Controller\Home;
use Symfony\Component\HttpFoundation\JsonResponse;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\HttpFoundation\Session\SessionInterface;
use Symfony\Component\Routing\Annotation\Route;
/**
* @Route("/", name="home")
*/
class HomeController extends AbstractController
{
public $session;
public $appUrl;
public function __construct(
SessionInterface $session
)
{
$this->session = $session;
$this->appUrl = $_ENV['APP_URL'];
}
public function ssr(Request $request) {
$appurl = $_SERVER['APP_URL'];
$ssrurl = $_SERVER['SSR_URL'];
// dump($_SERVER);
// die();
$url = $request->getUri();
$url = str_replace($appurl, $ssrurl, $url);
$my_query_string = http_build_query($request->query->all());
$curl = curl_init($url);
curl_setopt($curl, CURLOPT_HEADER, 1); // Include headers
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); // Return data as a string
curl_setopt($curl, CURLOPT_PORT, 3012);
$result = curl_exec($curl);
$status_code = curl_getinfo($curl, CURLINFO_HTTP_CODE);
$content_type = curl_getinfo($curl, CURLINFO_CONTENT_TYPE);
$header_size = curl_getinfo($curl, CURLINFO_HEADER_SIZE);
$header = substr($result, 0, $header_size);
$body = substr($result, $header_size);
curl_close($curl);
// dd($result);
$response = $this->render('home/ssr.html.twig', ['content' => $body]);
$response->headers->set('content-type', $content_type);
return $response;
}
/**
* @Route("register", name="register")
*/
public function register()
{
// return $this->render('home/account.html.twig');
}
/**
* @Route("login",name="login")
*/
public function login()
{
// return $this->render('home/login.html.twig');
}
/**
* @Route("logout",name="logout")
*/
public function logout()
{
// $this->session->remove("_token");
}
/**
* @Route("password/reset",name="password.reset")
*/
public function resetPassword()
{
// return $this->render('home/resetpassword.html.twig');
}
/**
* @Route("password/congrats",name="password/congrats")
*/
public function PasswordUpdate()
{
// return $this->render('home/congrats.html.twig');
}
/**
* @Route("kullanici-sozlesmesi",name="privacy")
*/
public function Privacy()
{
$token = $this->isUserLogin();
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => $this->appUrl."api/v1/static/content/kullanici",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 60,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => array(
"cache-control: no-cache",
),
));
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
return $this->forward('App\Controller\Home\HomeController::p404');
} else {
$response = json_decode($response);
dump($response);
// return $this->render('home/privacy.html.twig',
// [
// 'static' => $response->data,
// 'token' => $token
// ]
// );
}
}
/**
* @Route("gizlilik-sozlesmesi",name="agreement")
*/
public function Agreement()
{
$token = $this->isUserLogin();
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => $this->appUrl."api/v1/static/content/gizlilik",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 60,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => array(
"cache-control: no-cache",
),
));
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
return $this->forward('App\Controller\Home\HomeController::p404');
} else {
$response = json_decode($response);
// return $this->render('home/agreement.html.twig',
// [
// 'static' => $response->data,
// 'token' => $token
// ]
// );
}
}
/**
* @Route("coffeePhotos-fali-bakan-falcilar", name="coffeePhotos-fali-bakan-falcilar" , options={"utf8": true})
* @return Response
*/
public function fortuneCategoryKahveFali()
{
$token = $this->isUserLogin();
$data = $this->getFortuneTellersBySlug("coffeePhotos-fali");
$desc = $this->getFortuneCategories();
// return $this->render('home/category.html.twig',
// [
// 'token' => $token,
// 'tellers' => $data,
// 'catName' => "Kahve Falı",
// 'desc' => $desc,
// '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",
// '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."
// ]
// );
}
/**
* @Route("tarot-fali-bakan-falcilar", name="tarot-fali-bakan-falcilar" , options={"utf8": true})
* @return Response
*/
public function fortuneCategoryTarotFali()
{
$token = $this->isUserLogin();
$data = $this->getFortuneTellersBySlug("tarot-fali");
$desc = $this->getFortuneCategories();
// return $this->render('home/category.html.twig',
// [
// 'token' => $token,
// 'tellers' => $data,
// 'catName' => "Tarot Falı",
// 'desc' => $desc,
// '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",
// 'metaDesc' => "Tarot falı bakan gerçek falcılar yamiba.com’da! Kartların anlamını ve geleceğini merak ediyor musun?"
// ]
// );
}
/**
* @Route("katina-fali-bakan-falcilar", name="katina-fali-bakan-falcilar" , options={"utf8": true})
* @return Response
*/
public function fortuneCategoryKatinaFali()
{
$token = $this->isUserLogin();
$data = $this->getFortuneTellersBySlug("katina-fali");
$desc = $this->getFortuneCategories();
// return $this->render('home/category.html.twig',
// [
// 'token' => $token,
// 'tellers' => $data,
// 'catName' => "Katina Falı",
// 'desc' => $desc,
// '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",
// '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."
// ]
// );
}
/**
* @Route("ruya-yorumu-bakan-falcilar", name="ruya-yorumu-bakan-falcilar" , options={"utf8": true})
* @return Response
*/
public function fortuneCategoryRuyaYorumu()
{
$token = $this->isUserLogin();
$data = $this->getFortuneTellersBySlug("ruya-yorumu");
$desc = $this->getFortuneCategories();
// return $this->render('home/category.html.twig',
// [
// 'token' => $token,
// 'tellers' => $data,
// 'catName' => "Rüya Yorumu",
// 'desc' => $desc,
// '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",
// 'metaDesc' => "Rüya yorumu bakan gerçek falcılar yamiba.com’da! Rüyalarının anlamını merak ediyor musun?"
// ]
// );
}
/**
* @Route("iliski-danismani-bakan-falcilar", name="iliski-danismani-bakan-falcilar" , options={"utf8": true})
* @return Response
*/
public function fortuneCategoryIliskiDanismani()
{
$token = $this->isUserLogin();
$data = $this->getFortuneTellersBySlug("iliski-danismani");
$desc = $this->getFortuneCategories();
// return $this->render('home/category.html.twig',
// [
// 'token' => $token,
// 'tellers' => $data,
// 'catName' => "İlişki Danışmanı",
// 'desc' => $desc,
// '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",
// '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."
// ]
// );
}
/**
* @Route("el-fali-bakan-falcilar", name="el-fali-bakan-falcilar" , options={"utf8": true})
* @return Response
*/
public function fortuneCategoryElFali()
{
$token = $this->isUserLogin();
$data = $this->getFortuneTellersBySlug("el-fali");
$desc = $this->getFortuneCategories();
// return $this->render('home/category.html.twig',
// [
// 'token' => $token,
// 'tellers' => $data,
// 'catName' => "El Falı",
// 'desc' => $desc,
// '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",
// '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."
// ]
// );
}
/**
* @Route("astroloji-bakan-falcilar", name="astroloji-bakan-falcilar" , options={"utf8": true})
* @return Response
*/
public function fortuneCategoryAstroloji()
{
$token = $this->isUserLogin();
$data = $this->getFortuneTellersBySlug("astroloji");
$desc = $this->getFortuneCategories();
// return $this->render('home/category.html.twig',
// [
// 'token' => $token,
// 'tellers' => $data,
// 'catName' => "Astroloji Falı",
// 'desc' => $desc,
// '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",
// 'metaDesc' => "Astroloji falı yorumu bakan gerçek falcılar yamiba.com’da! Burcunnun özelliklerini ve geleceğini merak ediyor musun?"
// ]
// );
}
/**
* @Route("falcilar", name="category.all" , options={"utf8": true})
* @return Response
*/
public function fortuneCategoryAll()
{
$token = $this->isUserLogin();
$data = $this->getFortuneTellersAll();
dump($data);
// return $this->render('home/category-all.html.twig',
// [
// 'token' => $token,
// 'tellers' => $data,
// ]
// );
}
/**
* @Route("hakkimizda", name="about.us" , options={"utf8": true})
* @return Response
*/
public function aboutUs()
{
$token = $this->isUserLogin();
$desc = $this->getFortuneCategories();
// return $this->render('home/about.html.twig',
// [
// 'token' => $token,
// 'desc' => $desc
// ]
// );
}
/**
* @Route("p404",name="p404")
*/
public function p404()
{
$token = $this->isUserLogin();
return $this->render('home/p404.html.twig', ['token' => $token]);
}
/**
* @Route("nasil-kullanirim",name="how-to")
*/
public function howTo()
{
$token = $this->isUserLogin();
// return $this->render('home/how-to.html.twig', ['token' => $token]);
}
/**
* @Route("sikca-sorulan-sorular",name="faq")
*/
public function Faqs()
{
$token = $this->isUserLogin();
$API_Name = "v1/faq";
$data = $this->ApiGetMethod($API_Name);
// return $this->render('home/faq.html.twig', ["faqs" => $data,'token' => $token]);
}
private function ApiGetMethod($api_name)
{
$url = $this->appUrl."api/" . $api_name;
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
$data = curl_exec($ch);
curl_close($ch);
$data = json_decode($data);
return $data;
}
private function getFortuneTellersBySlug($slug){
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => $this->appUrl."api/v1/category/$slug/fortune/tellers",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_POSTFIELDS => "",
CURLOPT_HTTPHEADER => array(
"cache-control: no-cache",
"content-type: application/x-www-form-urlencoded"
),
));
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
dump($err);
return false;
} else {
return json_decode($response);
}
}
private function getFortuneTellersAll(){
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => $this->appUrl."api/v1/all/fortune/tellers",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => array(
"cache-control: no-cache",
"postman-token: ec908936-9ebf-0ae6-23f2-b211cc207c0a"
),
));
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
// dump($err);exit;
return false;
} else {
// dump($response);exit;
return json_decode($response);
}
}
private function getFortuneCategories(){
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => $this->appUrl."api/v1/fortune/teller/categories",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => array(
"cache-control: no-cache",
"postman-token: ec908936-9ebf-0ae6-23f2-b211cc207c0a"
),
));
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
// dump($err);exit;
return false;
} else {
// dump($response);exit;
return json_decode($response);
}
}
/**
* @Route("login", name="login")
* @param Request $request
* @return JsonResponse
*/
public function loginForm(Request $request): JsonResponse
{
$process = $request->request->get('process', false);
if ($process) {
// var_dump($process);
} else {
$errorArray = array(
'error' => true
);
return new JsonResponse($errorArray);
}
$email = $request->request->get('loginemail');
$password = $request->request->get('loginpassword');
$endpoint_url = $this->appUrl."api/token/get";
// Sets our destination URL
// Creates our data array that we want to post to the endpoint
$data_to_post = [
'email' => $email,
'password' => $password,
];
// Sets our options array so we can assign them all at once
$options = [
CURLOPT_URL => $endpoint_url,
CURLOPT_POST => true,
CURLOPT_POSTFIELDS => $data_to_post,
];
// Initiates the cURL object
$curl = curl_init();
// Assigns our options
curl_setopt_array($curl, $options);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
// Executes the cURL POST
$results = curl_exec($curl);
// Be kind, tidy up!
curl_close($curl);
$decodedResult = json_decode($results, true);
if (isset($decodedResult['token'])) {
$this->session->set("_token", $decodedResult['token']);
$this->session->set("_email", $decodedResult['data']['email']);
}
return new JsonResponse($decodedResult);
}
private function postAPICall($endPoint, $dataToPost = array()){
$endpoint_url = $this->appUrl."{$endPoint}";
// Sets our destination URL
// Creates our data array that we want to post to the endpoint
$data_to_post = $dataToPost;
// Sets our options array so we can assign them all at once
$options = [
CURLOPT_URL => $endpoint_url,
CURLOPT_POST => true,
CURLOPT_POSTFIELDS => $data_to_post,
];
// Initiates the cURL object
$curl = curl_init();
// Assigns our options
curl_setopt_array($curl, $options);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
// Executes the cURL POST
$results = curl_exec($curl);
// Be kind, tidy up!
curl_close($curl);
return$results;
}
private function isUserLogin()
{
$loginStatus = $this->session->get('_token');
if ($loginStatus == null) {
return false;
} else {
return $loginStatus;
}
}
}