/**
 * Created by PhpStorm.
 * User: shannon
 * Date: 12/14/15
 * Time: 6:15 PM
 */
use Psr\Http\Message\ServerRequestInterface as Request;
use Psr\Http\Message\ResponseInterface as Response;
use Syndicate\Entities\Session;
use Syndicate\Repositories\SessionRepository;
use Syndicate\Utils\RequestParser;
$create_session = function (Request $request, Response $response) {
    $session = Session::getAuthenicatedSession();
    $user = $session->getUser();
    SessionRepository::saveSession($session);
    $session_data = array("session_key" => $session->getKey());
    $user_data = array("id" => $user->getId(), "username" => $user->username, "first_name" => $user->first_name, "last_name" => $user->last_name);
    $response_data = array("session" => $session_data, "user" => $user_data, "privileges" => $user->getPrivileges());
    $response->getBody()->write(json_encode($response_data));
    return $response;
};
$app->post("/session/create", $create_session);
$close_session = function (Request $request, Response $response) {
    $parser = new RequestParser($request);
    $data = $parser->getData();
    if (empty($data['session_key'])) {
        $new_response = $response->withStatus(400);
        $new_response->getBody()->write("Must supply session_key");
        return $new_response;
    }