6543149e |
(in-package :fwoar.lack.cors.middleware)
;; cors middleware
(defparameter *acao-lens*
(data-lens:<>1 (data-lens.lenses:make-list-lens 1)
(data-lens.lenses:make-plist-lens :Access-Control-Allow-Origin)))
(defparameter *acah-lens*
(data-lens:<>1 (data-lens.lenses:make-list-lens 1)
(data-lens.lenses:make-plist-lens :Access-Control-Allow-Headers)))
(defparameter *acam-lens*
(data-lens:<>1 (data-lens.lenses:make-list-lens 1)
(data-lens.lenses:make-plist-lens :Access-Control-Allow-Methods)))
(defun cors-middleware (app)
(lambda (env)
(rutilsx.threading:->>
(if (eq :options
(getf env :request-method))
'(200 nil nil)
(let ((res (funcall app env)))
res))
(data-lens.lenses:set *acao-lens* "*")
(data-lens.lenses:set *acah-lens* "Content-Type")
(data-lens.lenses:set *acam-lens* "GET,POST,DELETE,PATCH"))))
|