Skip to content

Commit

Permalink
parsing of nested params
Browse files Browse the repository at this point in the history
  • Loading branch information
amitrathore committed Dec 21, 2009
1 parent 77432f8 commit 2734b16
Show file tree
Hide file tree
Showing 3 changed files with 25 additions and 27 deletions.
30 changes: 15 additions & 15 deletions spec/org/rathore/amit/webbing/web_server_2_spec.clj
@@ -1,6 +1,6 @@
(ns furtive-spec
(ns webbing-spec
(:use [clojure.test :only [run-tests deftest is]])
(:use org.rathore.amit.webbing.web-server-2))
(:use org.rathore.amit.webbing.utils))

(def params {
"d[general][page_type]" "undefined" ,
Expand All @@ -17,16 +17,16 @@
})

(deftest converting-to-nested-map
(let [nested (construct-nested-map params)]
(is (map? (nested :d)))
(let [d (:d nested)
general (:general d)]
(is (= (:client-time general) "1261181538285"))
(is (= (:request-url general) "http://trial-hotel.com/home.html"))
(is (= (:cid general) "encrypted-consumer-id-1261103840540"))
(is (= (:referrer general) ""))
(is (= (:merchant-session-id general) "EBCDIC"))
(is (= (:timezone-offset general) "480"))
(is (= (:merchant-id general) "1c030cab-5cbf-c62c-5a3c-287af5b8822b"))
(is (= (:_ nested) "1261181538286"))
(is (= (:jsonp nested) "jsonp1261181538202")))))
(let [nested (convert-to-nested-map params)]
(is (map? (nested "d")))
(let [d (nested "d")
general (d "general")]
(is (= (general "client-time") "1261181538285"))
(is (= (general "request-url") "http://trial-hotel.com/home.html"))
(is (= (general "cid") "encrypted-consumer-id-1261103840540"))
(is (= (general "referrer") ""))
(is (= (general "merchant-session-id") "EBCDIC"))
(is (= (general "timezone-offset") "480"))
(is (= (general "merchant-id") "1c030cab-5cbf-c62c-5a3c-287af5b8822b"))
(is (= (nested "-") "1261181538286"))
(is (= (nested "jsonp") "jsonp1261181538202")))))
19 changes: 10 additions & 9 deletions src/org/rathore/amit/webbing/utils.clj
Expand Up @@ -2,17 +2,18 @@

(filter (complement empty?) (seq (.split "d[general][client_time]" "[\\[\\]]")))

(defn break-key-for-nesting [nested-key]
(let [tokens (seq (.split nested-key "[\\[\\]]"))]
(filter (complement empty?) tokens)))
(defn- break-key-for-nesting [nested-key]
(let [tokens (seq (.split nested-key "[\\[\\]]"))
filtered (filter (complement empty?) tokens)
with-dashes (map #(.replace % "_" "-") filtered)]
with-dashes
))

(defn insert-nested-keys [nested-key value container]
(defn- insert-nested-keys [nested-key value container]
(let [broken (break-key-for-nesting nested-key)]
(update-in container broken (constantly value))))

(defn convert-to-nested-map [singularized]
(let [nested-keys (keys singularized)
nested {}]

)
)
(let [converter (fn [container [k v]]
(insert-nested-keys k v container))]
(reduce converter {} singularized)))
3 changes: 0 additions & 3 deletions src/org/rathore/amit/webbing/web_server_2.clj
Expand Up @@ -38,9 +38,6 @@
(defn is-get? [request]
(= (.toUpperCase (str (.getMethod request))) "GET"))

(defn convert-to-nested-map [singularized]
)

(defn params-map-from [request]
(let [p-map (into {} (.getParameterMap request))
singularized (singularize-values p-map)]
Expand Down

0 comments on commit 2734b16

Please sign in to comment.