summaryrefslogtreecommitdiff
path: root/src/scm/webid-oidc/client.scm
diff options
context:
space:
mode:
authorVivien Kraus <vivien@planete-kraus.eu>2021-09-09 23:25:58 +0200
committerVivien Kraus <vivien@planete-kraus.eu>2021-09-13 20:30:18 +0200
commit6a83b79c4de5986ad61a552c2612b7cce0105cda (patch)
tree8704d7b7bf2af24fab416a45ca8567148a558d05 /src/scm/webid-oidc/client.scm
parent9b6c36923f3ac4a2bd8f2a70ca679bc7374aef56 (diff)
Client: use http-request instead of http-get and http-post
Diffstat (limited to 'src/scm/webid-oidc/client.scm')
-rw-r--r--src/scm/webid-oidc/client.scm47
1 files changed, 24 insertions, 23 deletions
diff --git a/src/scm/webid-oidc/client.scm b/src/scm/webid-oidc/client.scm
index 1aad35d..461c4a7 100644
--- a/src/scm/webid-oidc/client.scm
+++ b/src/scm/webid-oidc/client.scm
@@ -25,6 +25,7 @@
#:use-module ((webid-oidc stubs) #:prefix stubs:)
#:use-module ((webid-oidc config) #:prefix cfg:)
#:use-module ((webid-oidc client accounts) #:prefix client:)
+ #:use-module ((webid-oidc cache) #:prefix cache:)
#:use-module (web uri)
#:use-module (web client)
#:use-module (web request)
@@ -104,33 +105,35 @@
((value port)
(original-writer value port))))))
+(define* default-http-get-with-cache
+ (cache:with-cache))
+
+(define* (default-http-request uri . all-args)
+ (let try-get-with-cache ((args all-args))
+ (match args
+ ((#:headers _)
+ (apply default-http-get-with-cache all-args))
+ ((#:headers _ other-args ...)
+ (try-get-with-cache other-args))
+ (else
+ (apply http-request all-args)))))
+
(define* (initial-login client issuer
#:key
- (http-request http-request))
+ (http-request default-http-request))
(setup-headers!)
(match client
(($ <client> client-id client-key redirect-uri)
- (let ((my-http-get
- (lambda* (uri . args)
- (apply http-request uri
- #:method 'GET
- args)))
- (my-http-post
- (lambda* (uri . args)
- (apply http-request uri
- #:method 'POST
- args))))
- (client:save-account
- (client:login #f issuer
- #:http-get my-http-get
- #:http-post my-http-post
- #:client-id client-id
- #:client-key client-key
- #:redirect-uri redirect-uri))))))
+ (client:save-account
+ (client:login #f issuer
+ #:http-request http-request
+ #:client-id client-id
+ #:client-key client-key
+ #:redirect-uri redirect-uri)))))
(define* (request client subject issuer
#:key
- (http-request http-request))
+ (http-request default-http-request))
(setup-headers!)
(match client
(($ <client> client-id client-key redirect-uri)
@@ -149,16 +152,14 @@
((subject issuer)
(client:save-account
(client:login subject issuer
- #:http-get my-http-get
- #:http-post my-http-post
+ #:http-request http-request
#:client-id client-id
#:client-key client-key
#:redirect-uri redirect-uri)))
((($ <client:account> subject issuer _ _ _ _))
(client:save-account
(client:login subject issuer
- #:http-get my-http-get
- #:http-post my-http-post
+ #:http-request http-request
#:client-id client-id
#:client-key client-key
#:redirect-uri redirect-uri)))))))