<?php

namespace App\View;

use Slim\Exception\HttpBadRequestException;
use Slim\Views\Twig;
use App\Model\Message;

class Pages
{
    private Twig $template;
    private $messages = [];
    
    public function __construct(Twig $view)
    {
	/* $this->template = Twig::fromRequest($request); */
	$this->template = $view;
	if(isset($_SESSION['message'])){
	    foreach($_SESSION['message'] as $msg){
		$message = new Message($msg[0], $msg[1]);
		$this->messages[] = $message;
	    }
	    unset($_SESSION['message']);
	}
    }

    public function render($request, $response, $page, $data){

	/* $template = Twig::fromRequest($request); */
	date_default_timezone_set("Europe/Minsk");
	$date = date("H:i:s d.m.Y");
	/* $msg = new Message("Системное время отстает");
	   $this->set_message($msg);
	   $msg = new Message("Успешно обновлено", 'info');
	   $this->set_message($msg); */
	/* echo var_dump($_SESSION['message']); */
	return $this->template->render($response, $page,
				 ['data' => $data,
				  'date' => $date,
				  'messages' => $this->messages,
				  'user' => $_SESSION['user']]);
    }

    public function redirect($response, $location) {

	return $response->withStatus(302)
			->withHeader('Location', $location);
    }

    public function set_message($msg, $level = 'info'){
	$message = new Message($msg, $level);
	$this->messages[] = $message;
    }
    
    public function bad($request){
	throw new HttpBadRequestException($request,
					  'Something went wrong, sorry.');
    }
}
