diff options
author | Vivien Kraus <vivien@planete-kraus.eu> | 2021-09-09 23:25:58 +0200 |
---|---|---|
committer | Vivien Kraus <vivien@planete-kraus.eu> | 2021-09-13 20:30:18 +0200 |
commit | 6a83b79c4de5986ad61a552c2612b7cce0105cda (patch) | |
tree | 8704d7b7bf2af24fab416a45ca8567148a558d05 /src/scm/webid-oidc/client.scm | |
parent | 9b6c36923f3ac4a2bd8f2a70ca679bc7374aef56 (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.scm | 47 |
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))))))) |