web/response: create and set cookie, using web/cookie package based on cl-cookie
This commit is contained in:
parent
4d9328104f
commit
f6a361f4b8
4 changed files with 31 additions and 8 deletions
|
@ -11,10 +11,12 @@
|
||||||
:scopes-core)
|
:scopes-core)
|
||||||
:components ((:file "frontend/cs-hx" :depends-on ("web/dom" "web/response"))
|
:components ((:file "frontend/cs-hx" :depends-on ("web/dom" "web/response"))
|
||||||
(:file "web/client")
|
(:file "web/client")
|
||||||
|
(:file "web/cookie")
|
||||||
(:file "web/dom")
|
(:file "web/dom")
|
||||||
(:file "web/jwt")
|
(:file "web/jwt")
|
||||||
(:file "web/response" :depends-on ("web/dom"))
|
(:file "web/response" :depends-on ("web/cookie" "web/dom"))
|
||||||
(:file "web/server" :depends-on ("web/jwt" "web/response")))
|
(:file "web/server"
|
||||||
|
:depends-on ("web/cookie" "web/jwt" "web/response")))
|
||||||
:long-description "scopes/web: Web server and web/API/REST client."
|
:long-description "scopes/web: Web server and web/API/REST client."
|
||||||
:in-order-to ((test-op (test-op "scopes-web/test"))))
|
:in-order-to ((test-op (test-op "scopes-web/test"))))
|
||||||
|
|
||||||
|
|
|
@ -69,8 +69,10 @@
|
||||||
(deftest test-message (client)
|
(deftest test-message (client)
|
||||||
(let ((msg (message:create '(:test :data :field :info) :data '(:info "test data"))))
|
(let ((msg (message:create '(:test :data :field :info) :data '(:info "test data"))))
|
||||||
(== (client:send-message client msg)
|
(== (client:send-message client msg)
|
||||||
"<div><div><label>info</label>: test data</div></div>"))
|
"<div><div><label>info</label>: test data</div></div>")) ; cs-hx:response
|
||||||
;"<dl><dt>info</dt><dd>test data</dd></dl>")))
|
;"<dl><dt>info</dt><dd>test data</dd></dl>"))) ; default response
|
||||||
(let ((msg (message:create '(:test :cookie) :data '(:name "mycookie"))))
|
(let ((msg (message:create '(:test :cookie)
|
||||||
(client:send-message client msg))
|
:data '(:name "mycookie" :value "my_value"))))
|
||||||
|
(client:send-message client msg)
|
||||||
|
(util:lgi client::*cookie-jar*))
|
||||||
)
|
)
|
||||||
|
|
16
web/cookie.lisp
Normal file
16
web/cookie.lisp
Normal file
|
@ -0,0 +1,16 @@
|
||||||
|
;;;; cl-scopes/web/cookie - interface to cl-cookie for simplified access
|
||||||
|
|
||||||
|
(defpackage :scopes/web/cookie
|
||||||
|
(:use :common-lisp)
|
||||||
|
(:local-nicknames (:c cl-cookie))
|
||||||
|
(:export #:create #:make-header))
|
||||||
|
|
||||||
|
(in-package :scopes/web/cookie)
|
||||||
|
|
||||||
|
(defun create (name value &key max-age (path "/") (httponly-p t))
|
||||||
|
(c:make-cookie :name name :value value
|
||||||
|
:path path :httponly-p httponly-p
|
||||||
|
:max-age max-age))
|
||||||
|
|
||||||
|
(defun make-header (cookie)
|
||||||
|
(c:write-set-cookie-header cookie))
|
|
@ -2,7 +2,8 @@
|
||||||
|
|
||||||
(defpackage :scopes/web/response
|
(defpackage :scopes/web/response
|
||||||
(:use :common-lisp)
|
(:use :common-lisp)
|
||||||
(:local-nicknames (:core :scopes/core)
|
(:local-nicknames (:cookie :scopes/web/cookie)
|
||||||
|
(:core :scopes/core)
|
||||||
(:dom :scopes/web/dom)
|
(:dom :scopes/web/dom)
|
||||||
(:message :scopes/core/message)
|
(:message :scopes/core/message)
|
||||||
(:shape :scopes/shape)
|
(:shape :scopes/shape)
|
||||||
|
@ -37,7 +38,9 @@
|
||||||
(shape:print-fields ia s 'messages))
|
(shape:print-fields ia s 'messages))
|
||||||
|
|
||||||
(defun render-cookie (cdata)
|
(defun render-cookie (cdata)
|
||||||
"DEMO=1234567_value; Path=/") ;"; Domain=testing.cyberscopes.org")
|
(let ((cookie (cookie:create (getf cdata :name) (getf cdata :value))))
|
||||||
|
(cookie:make-header cookie)))
|
||||||
|
;"DEMO=1234567_value; Path=/") ;"; Domain=testing.cyberscopes.org")
|
||||||
|
|
||||||
;;;; response definitions
|
;;;; response definitions
|
||||||
|
|
||||||
|
|
Loading…
Add table
Reference in a new issue