summaryrefslogtreecommitdiff
path: root/src/scm/webid-oidc/client/client.scm
diff options
context:
space:
mode:
authorVivien Kraus <vivien@planete-kraus.eu>2021-09-23 12:21:03 +0200
committerVivien Kraus <vivien@planete-kraus.eu>2021-10-01 12:32:20 +0200
commit98de254d3c77feadad464f77f51f9cad5993a9f8 (patch)
tree95d959724e449588e1707075263b9d25719f10d2 /src/scm/webid-oidc/client/client.scm
parentca67854900dbf0f7200e75c73f32900a8fe0b63e (diff)
Define an XML-loadable meta-class
Diffstat (limited to 'src/scm/webid-oidc/client/client.scm')
-rw-r--r--src/scm/webid-oidc/client/client.scm25
1 files changed, 5 insertions, 20 deletions
diff --git a/src/scm/webid-oidc/client/client.scm b/src/scm/webid-oidc/client/client.scm
index 3d02630..7c54cad 100644
--- a/src/scm/webid-oidc/client/client.scm
+++ b/src/scm/webid-oidc/client/client.scm
@@ -20,6 +20,7 @@
#:use-module (webid-oidc oidc-id-token)
#:use-module (webid-oidc dpop-proof)
#:use-module (webid-oidc web-i18n)
+ #:use-module (webid-oidc serializable)
#:use-module ((webid-oidc jwk) #:prefix jwk:)
#:use-module ((webid-oidc parameters) #:prefix p:)
#:use-module ((webid-oidc stubs) #:prefix stubs:)
@@ -51,33 +52,17 @@
client-redirect-uri
client
-
- ->sexp
)
#:declarative? #t)
(define <jwk:key-pair> jwk:<key-pair>)
(define-class <client> ()
- (client-id #:init-keyword #:client-id #:getter client-id)
+ (client-id #:init-keyword #:client-id #:getter client-id #:->sxml uri->string)
(key-pair #:init-keyword #:key-pair #:getter client-key-pair)
- (redirect-uri #:init-keyword #:redirect-uri #:getter client-redirect-uri))
-
-(define-method (->sexp (client <client>))
- `(begin
- (use-modules (oop goops) (webid-oidc client) (webid-oidc jwk))
- (make <client>
- #:client-id ,(uri->string (client-id client))
- #:key-pair (jwk->key (quote ,(key->jwk (client-key-pair client))))
- #:redirect-uri ,(uri->string (client-redirect-uri client)))))
-
-(define-method (write (client <client>) port)
- (pretty-print (->sexp client) port))
-
-(define-method (display (client <client>) port)
- (format port "#<<client> client-id=~a redirect-uri=~a>"
- (uri->string (client-id client))
- (uri->string (client-redirect-uri client))))
+ (redirect-uri #:init-keyword #:redirect-uri #:getter client-redirect-uri #:->sxml uri->string)
+ #:metaclass <plugin-class>
+ #:module-name '(webid-oidc client client))
(define-method (initialize (client <client>) initargs)
(next-method)