git.fiddlerwoaroof.com
Raw Blame History
(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")))