diff options
author | Vivien Kraus <vivien@planete-kraus.eu> | 2021-09-23 12:21:03 +0200 |
---|---|---|
committer | Vivien Kraus <vivien@planete-kraus.eu> | 2021-10-01 12:32:20 +0200 |
commit | 98de254d3c77feadad464f77f51f9cad5993a9f8 (patch) | |
tree | 95d959724e449588e1707075263b9d25719f10d2 /src/scm/webid-oidc/client/client.scm | |
parent | ca67854900dbf0f7200e75c73f32900a8fe0b63e (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.scm | 25 |
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) |