summaryrefslogtreecommitdiff
path: root/src/scm/webid-oidc/errors.scm
diff options
context:
space:
mode:
Diffstat (limited to 'src/scm/webid-oidc/errors.scm')
-rw-r--r--src/scm/webid-oidc/errors.scm14
1 files changed, 14 insertions, 0 deletions
diff --git a/src/scm/webid-oidc/errors.scm b/src/scm/webid-oidc/errors.scm
index b0e9a19..714e0be 100644
--- a/src/scm/webid-oidc/errors.scm
+++ b/src/scm/webid-oidc/errors.scm
@@ -777,6 +777,17 @@
(raise-exception
((record-constructor &cannot-encode-id-token) id-token key cause)))
+(define-public &unknown-client-locale
+ (make-exception-type
+ '&unknown-client-locale
+ &external-error
+ '(web-locale c-locale)))
+
+(define-public (raise-unknown-client-locale web-locale c-locale)
+ (raise-exception
+ ((record-constructor &unknown-client-locale) web-locale c-locale)
+ #:continuable? #t))
+
(define*-public (error->str err #:key (max-depth #f))
(if (record? err)
(let* ((type (record-type-descriptor err))
@@ -1087,6 +1098,9 @@
((&not-an-id-token-payload)
(format #f (G_ "~s is not an ID token payload (because ~a)")
(get 'value) (recurse (get 'cause))))
+ ((&unknown-client-locale)
+ (format #f (G_ "I couldn’t set the locale to ~s as an approximation of the client locale ~s")
+ (get 'c-locale) (get 'web-locale)))
((&compound-exception)
(let ((components (get 'components)))
(if (null? components)