;;;; session.lisp (in-package :vampire) ;;; session parameter keys (defparameter +session-key+ "vampire-session-key" "Stored in the browser's local storage") (defparameter +playlist-connection-key+ "playlist-connection-key" "Stored in the clog connection object") ;;; SESSION ACCESSORS (defun session-key (window) (jonathan:parse (storage-element window :local +session-key+))) (defun (setf session-key) (val window) (setf (storage-element window :local +session-key+) (jonathan:to-json val))) (defun session-user (clog-obj) (user-with-key (session-key (window (connection-body clog-obj))))) (defun cur-playlist-ctl (obj) (connection-data-item obj +playlist-connection-key+)) (defun (setf cur-playlist-ctl) (newval obj) (setf (connection-data-item obj +playlist-connection-key+) newval))