   [channel google-id command-data]
   (if-let [command-fn (command-map (get command-data :command))]
     (command-fn channel google-id (dissoc command-data :command))
-    ;; TODO: Add error logging
     (send! channel (json/encode
                     {:error "Invalid command"}))))


(def command-map
  (wrap-middlewares
   [wrap-validator wrap-transaction]
   (merge {"create-and-start-timer" (wrap-can-create-timer
                                     create-and-start-timer-command!)}
          (wrap-middlewares

            [time-tracker.util :as util]
            [clojure.spec :as s]
            [time-tracker.timers.spec]
            [clojure.algo.generic.functor :refer [fmap]]
            [time-tracker.logging :as log]))

;; Connection management -------

