<?php

namespace App\Actions;

use Psr\Http\Message\ResponseInterface;
use Psr\Http\Message\ServerRequestInterface;
use App\Services\ApiService;
use App\View\Pages;

class MainAction 
{
    private $rest;
    private $view;
    
    public function __construct(ApiService $api, Pages $view)
    {
	$this->rest = $api;
	$this->view = $view;
    }

    public function main(ServerRequestInterface $request,
			 ResponseInterface $response, array $args): ResponseInterface
    {
	/* $view = Twig::fromRequest($request); */
	/* $view = new Pages($request); */
	/* $api = new FSAPI($this->rest); */
	$status = $this->rest->status();
	/* $session = $api->session(); */
	/* echo var_dump($_SESSION); */
	date_default_timezone_set("Europe/Minsk");
	$date = date("H:i:s d.m.Y");
	/* return $view->render($response, "index.html",
	   ['status' => $status,
	   'session' => $session,
	   'user' => $_SESSION['user'],
	   'current_date' => $date]); */
	/* echo var_dump($_SESSION); */
	return $this->view->render($request, $response, "index.html",
			     /* ['status' => $status,
				'session' => $session,
				'user' => $_SESSION['user'],
				'current_date' => $date] */
			     $status);
	/* return $view->bad($request); */

    }

    public function system(ServerRequestInterface $request,
			   ResponseInterface $response, array $args): ResponseInterface
    {

        $body = json_decode($request->getBody(), true);
        $cmd = $args['cmd'];
        $data['cmd'] = $body['cmd'];
        $data['args'] = $body['args'];
	if ($data['cmd'] == "set_date"){
	    $time = $data['args'];
	    $res = shell_exec("sudo /var/www/cgi/update_time 2>&1 ". $data['args']);
	    echo var_dump($res);
 	} else {
	    /* $api = new FSAPI($this->rest); */
            $result = $this->rest->system($data);
	}
        return $response;
        // return $response->withStatus(302)
        //     ->withHeader('Location', "/ui/user/$name");
    }

    public function current_state(ServerRequestInterface $request,
				  ResponseInterface $response, array $args): ResponseInterface
    {
	/* $view = Twig::fromRequest($request); */
	/* $api = new FSAPI($this->rest); */
	$status = $this->rest->status();
	$session = $this->rest->session();
	/* echo var_dump($status); */
	date_default_timezone_set("Europe/Minsk");
	$date = date("H:i:s d.m.Y");
	return $this->view->render($request, $response, "state.html",
			     ['status' => $status,
			      'session' => $session,
			      'current_date' => $date]);
    }

}
