diff --git a/ement.el b/ement.el index 9f7ddb4..f9507b3 100644 --- a/ement.el +++ b/ement.el @@ -1030,7 +1030,15 @@ IMAGE should be one as created by, e.g. `create-image'." (lambda (a b) (> (latest-event-in a) (latest-event-in b)))))))) -(defun ement-put-account-data (session type data) +(cl-defun ement-put-account-data + (session type data + &key (then (lambda (received-data) + ;; Handle echoed-back account data event (the spec does not explain this, + ;; but see ). + ;; FIXME: Make session account-data a map instead of a list of events. + (push received-data (ement-session-account-data session)) + (ement-debug "Account data put and received back on session %s: PUT(json-encoded):%S RECEIVED:%S" + (ement-user-id (ement-session-user session)) (json-encode data) received-data)))) "Put account data of TYPE with DATA on SESSION. Also handle the echoed-back event." (declare (indent defun)) @@ -1038,13 +1046,7 @@ Also handle the echoed-back event." (url-hexify-string (ement-user-id (ement-session-user session))) type))) (ement-api session endpoint :method 'put :data (json-encode data) - :then (lambda (received-data) - ;; Handle echoed-back account data event (the spec does not explain this, - ;; but see ). - ;; FIXME: Make session account-data a map instead of a list of events. - (push received-data (ement-session-account-data session)) - (ement-debug "Account data put and received back on session %s: PUT(json-encoded):%S RECEIVED:%S" - (ement-user-id (ement-session-user session)) (json-encode data) received-data))))) + :then then))) (defun ement--room-unread-p (room session) "Return non-nil if ROOM is considered unread for SESSION.