message: use actor:message as second base class => replace message:sender with actor:customer
This commit is contained in:
parent
e528d96e09
commit
92b26c74bb
5 changed files with 22 additions and 17 deletions
|
@ -5,7 +5,7 @@
|
|||
(:local-nicknames (:async :scopes/util/async)
|
||||
(:util :scopes/util))
|
||||
(:export #:actor #:bg-actor #:become #:create #:send
|
||||
#:content
|
||||
#:message #:content #:customer
|
||||
#:*logger* #:*root*
|
||||
#:echo #:inc #:lgi
|
||||
#:calculator #:plus #:minus #:show #:send-value))
|
||||
|
|
|
@ -2,7 +2,8 @@
|
|||
|
||||
(defpackage :scopes/core
|
||||
(:use :common-lisp)
|
||||
(:local-nicknames (:async :scopes/util/async)
|
||||
(:local-nicknames (actor :scopes/core/actor)
|
||||
(:async :scopes/util/async)
|
||||
(:config :scopes/config)
|
||||
(:message :scopes/core/message)
|
||||
(:shape :scopes/shape)
|
||||
|
@ -146,13 +147,13 @@
|
|||
;;;; some simple predefined actions
|
||||
|
||||
(defun echo (ctx msg &key (domain :scopes) (action :echo))
|
||||
(let ((sndr (message:sender msg)))
|
||||
(if sndr
|
||||
(let ((cust (actor:customer msg)))
|
||||
(if cust
|
||||
(let* ((h (shape:head msg))
|
||||
(new-msg (message:create `(,domain ,action ,@(cddr h))
|
||||
:data (shape:data msg))))
|
||||
(send sndr new-msg))
|
||||
(util:lgw "sender missing" msg))))
|
||||
(send cust new-msg))
|
||||
(util:lgw "customer missing" msg))))
|
||||
|
||||
(defun do-print (ctx msg)
|
||||
(declare (ignore ctx))
|
||||
|
|
|
@ -2,9 +2,10 @@
|
|||
|
||||
(defpackage :scopes/core/message
|
||||
(:use :common-lisp)
|
||||
(:local-nicknames (:shape :scopes/shape))
|
||||
(:local-nicknames (:actor :scopes/core/actor)
|
||||
(:shape :scopes/shape))
|
||||
(:export #:message-meta #:message #:create
|
||||
#:head #:data #:sender))
|
||||
#:head #:data))
|
||||
|
||||
(in-package :scopes/core/message)
|
||||
|
||||
|
@ -13,12 +14,14 @@
|
|||
(defun message-meta ()
|
||||
(make-instance 'shape:record-meta :head-fields '(:domain :action :class :item)))
|
||||
|
||||
(defclass message (shape:record)
|
||||
((shape:meta :initform (message-meta) :allocation :class)
|
||||
(sender :reader sender :initarg :sender :initform nil)))
|
||||
(defclass message (shape:record actor:message)
|
||||
((shape:meta :initform (message-meta) :allocation :class)))
|
||||
|
||||
(defun create (head &key data sender)
|
||||
(shape:create 'message :head head :data data :sender sender))
|
||||
(defun create (head &key data customer)
|
||||
(shape:create 'message :head head :data data :customer customer))
|
||||
|
||||
(defmethod print-object ((msg message) stream)
|
||||
(shape:print-slots msg stream 'shape:head 'sender 'shape:data))
|
||||
(shape:print-slots msg stream 'shape:head 'actor:customer 'shape:data))
|
||||
|
||||
(defmethod actor:content ((msg message))
|
||||
(list (shape:head-plist) (shape:data)))
|
||||
|
|
|
@ -2,7 +2,8 @@
|
|||
|
||||
(defpackage :scopes-auth/web
|
||||
(:use :common-lisp)
|
||||
(:local-nicknames (:auth :scopes-auth)
|
||||
(:local-nicknames (:actor :scopes/core/actor)
|
||||
(:auth :scopes-auth)
|
||||
(:config :scopes/config)
|
||||
(:core :scopes/core)
|
||||
(:jwt :scopes/web/jwt)
|
||||
|
@ -17,7 +18,7 @@
|
|||
(defun login-form (ctx msg)
|
||||
(let ((msg (message:create '(:html :render :form :login)
|
||||
:data '(:fields (:login :password) :button "Login")
|
||||
:sender (message:sender msg))))
|
||||
:customer (actor:customer msg))))
|
||||
(core:echo ctx msg)))
|
||||
|
||||
(defun login (ctx msg)
|
||||
|
|
|
@ -91,7 +91,7 @@
|
|||
(let* ((resp (response:setup ctx env :html-responder html-responder))
|
||||
(iact (make-instance 'response:interaction :response resp))
|
||||
(msg (message:create
|
||||
(head env) :data (plist (post-data env)) :sender iact)))
|
||||
(head env) :data (plist (post-data env)) :customer iact)))
|
||||
(util:lgd msg)
|
||||
; (check-auth ctx msg env) => (response:render-unauthorized resp)
|
||||
(if (core:handle-message ctx msg)
|
||||
|
|
Loading…
Add table
Reference in a new issue