Advertisement
Guest User

Untitled

a guest
Aug 27th, 2016
56
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.33 KB | None | 0 0
  1. (ns threading-comparison
  2. (:require
  3. [swiss.arrows :refer [-<> some-<>]]))
  4.  
  5. (defn schema-from-parameters
  6. "Given a seq of YAML parameter maps (containing string keys 'in' and 'schema'),
  7. returns a hash-map with keys (values of in) and values (values of schema). May return nil.
  8. EX: ({in body schema {...}}
  9. in header schema {...}})
  10. -> {:body {...JSON-SCHEMA...}
  11. :header {...YAML SCHEMA...}}"
  12. [parameters]
  13. (some-<> parameters
  14. (map #(list (get % "in") (get % "schema")) <>) ; (("body" "schema") ...)
  15. (filter (fn [[k v]] (some? v)) <>) ; return nil if no "schema"s present
  16. (into {} <>))) ; merge all found schemas into one map
  17.  
  18. (defn schema-from-parameters
  19. [parameters]
  20. (some->> parameters
  21. (map #(list (get % "in") (get % "schema")) parameters) ; (("body" "schema") ...)
  22. (filter (fn [[k v]] (some? v))) ; return nil if no "schema"s present
  23. (into {}))) ; merge all found schemas into one map
  24.  
  25. (defn schema-from-parameters
  26. [parameters]
  27. (let [x (map #(list (get % "in") (get % "schema")) parameters) ; (("body" "schema") ...)
  28. y (filter (fn [[k v]] (some? v)) x)] ; list of all maps with a "schema" present
  29. (some->> y
  30. (into {})))) ; merge into one result
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement