git.fiddlerwoaroof.com
route-atoms.lisp
703fc701
 (in-package :whitespace)
 
 (define-view dark-css (params)
   (colors:let-palette (make-instance 'colors:palette)
     (eval '(get-theme-css))))
 
 (define-view light-css (params)
   (colors:let-palette (colors:invert-palette (make-instance 'colors:palette))
     (eval '(get-theme-css))))
 
 (define-view css (colorscheme)
   (string-case:string-case (colorscheme :default "")
     ("light" (view 'light-css colorscheme))
     ("dark" (view 'dark-css colorscheme))))
 
 (define-view userinfo (params)
   (declare (ignore params))
   (ningle:with-context-variables (session)
     (cl-oid-connect:require-login
       (cl-oid-connect::with-endpoints (gethash :endpoint-schema session)
         `(200
           (:content-type "application/json")
           (,(cl-json:encode-json-to-string
              (gethash :userinfo session))))))))
 
 (define-controller css (params)
   (cl-oid-connect.utils:assoc-cdr :scheme params))
 
 (define-controller id (params)
   params)
 
 (define-view redirect (destination)
   `(302 (:location ,destination)))
 
 (define-view login (params)
   (cl-who:with-html-output-to-string (s)
     (:html
       (:head (:title "Login"))
       (:body
         (:div
           :class "login-button facebook"
           (:a :href "/login/facebook" "Facebook"))
         (:div
           :class "login-button google"
           (:a :href "/login/google" "Google"))))))
 
 (define-controller logout (params)
   (declare (ignore params))
   (ningle:with-context-variables (session)
     (setf (gethash :userinfo session) nil)
     "/"))
 
 (define-view root (feeds)
   (let ((*feeds* feeds))
     (base-template-f)))
 
 (define-controller root (params)
   (cl-oid-connect.utils::with-login
     (ningle:with-context-variables (session)
       (cl-oid-connect:redirect-if-necessary session
         (let* ((user-info (gethash :app-user session)))
           (deserialize user-info))))
     (:unauthorized (c)
      (declare (ignore c))
      (format t "hmm...")
      (araneus::switch-view 'redirect)
      "/login")))