31 lines
957 B
Clojure
31 lines
957 B
Clojure
(ns pinkblackrose.ajax
|
|
(:require
|
|
[ajax.core :as ajax]
|
|
[luminus-transit.time :as time]
|
|
[cognitect.transit :as transit]
|
|
[re-frame.core :as rf]))
|
|
|
|
(defn local-uri? [{:keys [uri]}]
|
|
(not (re-find #"^\w+?://" uri)))
|
|
|
|
(defn default-headers [request]
|
|
(if (local-uri? request)
|
|
(-> request
|
|
(update :headers #(merge {"x-csrf-token" js/csrfToken} %)))
|
|
request))
|
|
|
|
;; injects transit serialization config into request options
|
|
(defn as-transit [opts]
|
|
(merge {:raw false
|
|
:format :transit
|
|
:response-format :transit
|
|
:reader (transit/reader :json time/time-deserialization-handlers)
|
|
:writer (transit/writer :json time/time-serialization-handlers)}
|
|
opts))
|
|
|
|
(defn load-interceptors! []
|
|
(swap! ajax/default-interceptors
|
|
conj
|
|
(ajax/to-interceptor {:name "default headers"
|
|
:request default-headers})))
|