Fork me on GitHub
#clojure-norway
<
2022-06-24
>
augustl07:06:14

TIL: compojure.core/wrap-routes - kjør en haug med middlewares etter path-matching. Hvis man gjør f.eks (-> my-routes (wrap-auth)) hvor wrap-auth svarer med autentiseringsfeil, får du den uansett om requestet matcher en av pathene i my-routes eller ei. Hvis du i stedet gjør (-> my-routes (compojure.core/wrap-routes wrap-auth)) så kalles wrap-auth bare hvis en av handlerene i my-routes returnerte en respons.

❤️ 1
magnars09:06:52

Jeg måtte se litt på implementasjonen av den der. Den samler faktisk opp middleware-funksjonene i en navngitt key på requesten, som det så er routeren sin jobb å kalle på når det har gjort sitt.

augustl09:06:48

ja riktig, compojure.core/GET og POST og alle disse gjør something something for å samarbeide?

magnars08:06:19

Akkurat i tide til lunsjen, en ny episode av Zombie CLJ! https://www.zombieclj.no/s02e17.html 😄

🎉 2
slipset10:06:36

unfold 🙂

slipset10:06:18

evt den nye iterations

oddsor12:06:21

iteration :face_with_monocle:

slipset10:06:18

Forøvrig, two for two med Betting your company on Clojure. Både på Javazone og NDC 🙂

👏 5
🎉 4
slipset11:06:12

Unfold er jo en omvendt reduce. Så, hvis du har en event som lager flere, (Stuart Sierra kaller dem konsekvenser) kan man bruke unfold til å generere dem.

slipset11:06:04

Dere hadde jo i dagens episode at en event forårsaket flere events, det høres ut som en unfold for meg

slipset11:06:48

clj-commons/useful har en implementasjon, Clojure 1.11 har iterations som er enda mer generell

cjohansen11:06:46

Artig, får se på det

cjohansen11:06:51

“clj-commons/useful” :thinking_face:

slipset11:06:24

Svært anvendelig ved konsumering av paginerte resultater:

(defn scroll [search-config previous-result]
  (let [hits (count (get-in previous-result [:hits :hits]))]
    (when (= hits scroll-size)
      (let [scroll-id (:_scroll_id previous-result)
            result (run-request! (->scroll-request search-config scroll-id window-length))]
        [result result]))))

(useful/unfold (partial scroll search-config) result)

teodorlu12:06:34

Har du en eksempel-repl-invokering av unfold - som også har output? Jeg ble nysgjerrig 😄

teodorlu12:06:38

Symmetri er gøy.

teodorlu15:06:20

Fibonacci-eksemplet forklarte det jeg var ute etter - takk!