From dd69b1b56f13127185faedad3e55c2bc7894b3eb Mon Sep 17 00:00:00 2001 From: Helmut Merz Date: Wed, 28 Aug 2024 11:10:33 +0200 Subject: [PATCH] web/client: add cookie-jar handling --- scopes-web.asd | 2 +- web/client.lisp | 7 +++++-- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/scopes-web.asd b/scopes-web.asd index 53311f0..b96e98b 100644 --- a/scopes-web.asd +++ b/scopes-web.asd @@ -6,7 +6,7 @@ :version "0.0.1" :homepage "https://www.cyberconcepts.org" :description "Web client and server functionality." - :depends-on (:clack :dexador :flexi-streams + :depends-on (:cl-cookie :clack :dexador :flexi-streams :lack :lack-component :lack-app-file :quri :scopes-core) :components ((:file "frontend/cs-hx" :depends-on ("web/dom" "web/response")) diff --git a/web/client.lisp b/web/client.lisp index 9fba359..674f4a7 100644 --- a/web/client.lisp +++ b/web/client.lisp @@ -12,6 +12,8 @@ (in-package :scopes/web/client) +(defvar *cookie-jar* (cl-cookie:make-cookie-jar)) + (defclass config (config:base) ((config:setup :initform #'core:default-setup) (base-url :reader base-url :initarg :base-url :initform "http://localhost:8135") @@ -25,14 +27,15 @@ (let* ((cfg (core:config ctx)) (path (getf (shape:data msg) :path)) (url (str:concat (base-url cfg) (doc-path cfg) path))) - (dex:get url :headers '(("Accept". "text/html"))))) + (dex:get url :headers '(("Accept". "text/html")) :cookie-jar *cookie-jar*))) (defun send-message (ctx msg) (let* ((cfg (core:config ctx)) (url (str:concat (base-url cfg) (api-path cfg) (msgpath msg)))) (dex:post url :content (data-as-alist (shape:data msg)) - :headers `(("Accept" . ,(accept cfg)))))) + :headers `(("Accept" . ,(accept cfg))) + :cookie-jar *cookie-jar*))) (defun msgpath (msg) (str:join "/" (loop for p in (shape:head msg)