 
 
 (defn create-params [path args] 
-  (let [defaults (struct parameter nil nil nil "String" true nil false) ]
+  (let [defaults (parameter- nil nil nil "String" true nil false) ]
     (mapv 
       #(-> % meta 
            (merge defaults {:name (str %)} (guess-type path %))) args)))
 
 (defn create-op [desc verb params]
-  (merge (struct operation) desc {:parameters params :httpMethod verb}))
+  (merge (operation-) desc {:parameters params :httpMethod verb}))
 
 (defn swag-path [path]
   "Converts compojure params to swagger params notation"

  "Creates a swagger enabled http route with a given verb"
  [verb path args desc & body]
  `(with-meta (~verb ~path ~args ~@body) 
      (struct api ~(swag-path path) "THis should be taken from defroute!"
           [(create-op ~desc (-> ~verb var meta :name) ~(create-params path args))])))

(defmacro GET- 

(defn create-api [name & routes]
  (let [_apis (filterv identity (map meta (rest routes)))]
    (swap! apis assoc (keyword name) 
           (api-decleration- "0.1" "1.1" (<< "~{base}api") (<< "/~{name}") (combine-apis _apis) []))))

(defmacro defroutes-
  "A swagger enabled defroute"
