summaryrefslogtreecommitdiff
path: root/src/scm/webid-oidc/client/client.scm
diff options
context:
space:
mode:
authorVivien Kraus <vivien@planete-kraus.eu>2021-09-15 11:24:11 +0200
committerVivien Kraus <vivien@planete-kraus.eu>2021-09-15 12:41:49 +0200
commit244f18a9ebc1d5ed09248f9a2ce25fcdd10da484 (patch)
treef30d88336ba727519db239626d13a70b00dd9fd4 /src/scm/webid-oidc/client/client.scm
parenta050fc5ee9c795742fc6bd0830dc657721628eb8 (diff)
Client API: add a pretty printer
Diffstat (limited to 'src/scm/webid-oidc/client/client.scm')
-rw-r--r--src/scm/webid-oidc/client/client.scm19
1 files changed, 19 insertions, 0 deletions
diff --git a/src/scm/webid-oidc/client/client.scm b/src/scm/webid-oidc/client/client.scm
index 66f8b74..1bf1c7c 100644
--- a/src/scm/webid-oidc/client/client.scm
+++ b/src/scm/webid-oidc/client/client.scm
@@ -34,6 +34,7 @@
#:use-module (web http)
#:use-module (ice-9 optargs)
#:use-module (ice-9 receive)
+ #:use-module (ice-9 pretty-print)
#:use-module (srfi srfi-9)
#:use-module (srfi srfi-19)
#:use-module (srfi srfi-26)
@@ -52,6 +53,8 @@
client-redirect-uri
client
+
+ ->sexp
)
#:declarative? #t)
@@ -60,6 +63,22 @@
(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))
+ (make <client>
+ #:client-id ,(uri->string (client-id client))
+ #:key-pair (quote ,(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))))
+
(define-method (initialize (client <client>) initargs)
(next-method)
(let-keywords