     true))
 
 (defn validate [request {dsp :dsp status :status body :body}]
-  ;; TODO: validate id identity
+  ;; TODO: validate status before parse json
   (try
    (let [body (and body (json/parse-string body true))
          {:keys [id bidPrice advertiserId]} body

               true
               {:status :valid :response body})]
     (assoc ret :dsp dsp))
   (catch JsonParseException e {:status :invalid :reason "invalid JSON"})
   (catch Exception          e {:status :invalid :reason (format "validation process raised unexpected error: %s" e)})))

(defn log-validated [test arg]
  (let [{dsp :dsp res :response status :status} arg]

               (not bidPrice)
               {:status :invalid :reason "no bid price"}
               
               (not (instance? Number bidPrice))
               {:status :invalid :reason "bidPrice not double" :bidPrice bidPrice}
               
               (not (over-floor? (:floorPrice request) bidPrice))
