Skip to content

Commit

Permalink
Implement both synchronous (1-arity) and asynchronous (3-arity) Ring …
Browse files Browse the repository at this point in the history
…handler functions. weavejester#54
  • Loading branch information
enspritz committed Jul 3, 2024
1 parent d711e01 commit e521b2e
Showing 1 changed file with 12 additions and 7 deletions.
19 changes: 12 additions & 7 deletions src/ring/middleware/oauth2.clj
Original file line number Diff line number Diff line change
Expand Up @@ -158,10 +158,15 @@
{:pre [(every? valid-profile? (vals profiles))]}
(let [profiles (for [[k v] profiles] (assoc v :id k))
launches (into {} (map (juxt :launch-uri identity)) profiles)
redirects (into {} (map (juxt parse-redirect-url identity)) profiles)]
(fn [{:keys [uri] :as request}]
(if-let [profile (launches uri)]
((make-launch-handler profile) request)
(if-let [profile (redirects uri)]
((:redirect-handler profile (make-redirect-handler profile)) request)
(handler (assoc-access-tokens request)))))))
redirects (into {} (map (juxt parse-redirect-url identity)) profiles)
f (fn [{:keys [uri] :as request}]
(if-let [profile (launches uri)]
((make-launch-handler profile) request)
(if-let [profile (redirects uri)]
((:redirect-handler profile
(make-redirect-handler profile))
request)
(handler (assoc-access-tokens request)))))]
(fn
([request] (f request))
([request respond _] (respond (f request))))))

0 comments on commit e521b2e

Please sign in to comment.