(cl:in-package :cl-user) (defpackage :fwoar.intercooler (:use :cl ) (:import-from :fw.lu defclass+) (:import-from :araneus controller) (:export #:partial-request #:full-request #:intercooler-route #:intercooler-request #:request)) (in-package :fwoar.intercooler) (defclass+ intercooler-request () ((%request :initarg :request :reader request))) (defclass+ partial-request ((intercooler-request (request))) ()) (defclass+ full-request ((intercooler-request (request))) ()) (defclass intercooler-route () ()) (defmethod controller :around ((route intercooler-route) params &key) (funcall (if (equal (serapeum:assocdr "ic-request" params :test 'equal) "true") 'partial-request 'full-request) (call-next-method)))