<?php
namespace App\Controller;
use App\Service\InfopressService;
use App\Service\VippsService;
use Doctrine\Persistence\ManagerRegistry;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\HttpFoundation\JsonResponse;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\HttpFoundation\Session\SessionInterface;
use Symfony\Component\PasswordHasher\Hasher\UserPasswordHasherInterface;
use Symfony\Component\Routing\Annotation\Route;
class MainController extends AbstractController
{
private $doctrine;
private $infopress;
private function passwordIsStrongEnough($password) {
return true;
}
public function __construct(ManagerRegistry $doctrine, SessionInterface $session, InfopressService $infopress)
{
$saved_lang = $session->get('LANGUAGE');
if ($saved_lang == '') $saved_lang = 'bok';
require_once dirname(__FILE__) . '/../../assets/language/' . $saved_lang . '.php';
$this->infopress = $infopress;
$this->doctrine = $doctrine;
}
/**
* @Route("/changelang/{lang}", name="abo_changelang_page")
*/
public function abo_changelang_page($lang, Request $request): Response
{
$http_referer = $request->server->get('HTTP_REFERER');
if ($http_referer === null) return $this->redirectToRoute('abo_details_page');
$request->getSession()->set('LANGUAGE',$lang);
return $this->redirect($http_referer);
}
/**
* @Route("/", name="abo_details_page")
*/
public function abo_details_page(Request $request): Response
{
if ($request->getMethod() == 'POST') {
$p = $_POST;
pre($p);
}
$abo_content = false;
$abo_typer = false;
if ($this->getUser()) {
$abo_content = $this->infopress->pv3_abo_content($this->getUser()->getAboid());
$abo_typer = $this->infopress->abo_typer();
}
return $this->render('main/abo_details.html.twig', [
'abo_content' => $abo_content,
'abo_typer' => $abo_typer,
]);
}
/**
* @Route("/carddetails", name="abo_carddetails_page")
*/
public function abo_carddetails_page(): Response
{
return $this->render('main/abo_carddetails.html.twig');
}
/**
* @Route("/new", name="abo_new_page")
*/
public function abo_new_page(Request $request): Response
{
if ($request->getMethod() == 'POST') {
$p = $_POST;
dd($p);
}
$subscriptions = $this->infopress->abo_typer(false);
return $this->render('main/abo_new.html.twig', [
'subscriptions' => $subscriptions,
]);
}
/**
* @Route("/updatepasswd", name="abo_updatepasswd_page")
*/
public function abo_updatepasswd_page(Request $request, UserPasswordHasherInterface $hasher): Response
{
if ($request->getMethod() == 'POST') {
$p = $_POST;
$me = $this->getUser();
$me->setPassword($hasher->hashPassword($me,$p['Password1']));
$this->doctrine->getManager()->persist($me);
$this->doctrine->getManager()->flush();
}
return new JsonResponse(array('status' => 'success', 'message' => 'Passordet ble oppdatert!'));
}
/**
* @Route("/pay", name="abo_pay_page")
*/
public function abo_pay_page(Request $request): Response
{
if ($request->getMethod() == 'POST') {
$p = $_POST;
pre($p,1);
switch ($p['paymethod']) {
case 'vipps':
$vipps = new VippsService($request->server->get('HTTP_HOST'));
break;
}
} else {
return $this->redirectToRoute('abo_details_page');
}
}
}