 
 (defmethod send-http :post [method url params headers]
   (http/post (prepend-url url) {:timeout 2000
+                                 :headers headers
+                                 :form-params params}))
+
+(defmethod send-http :delete [method url params headers]
+  (http/delete (prepend-url url) {:timeout 2000
                                  :headers headers
                                  :form-params params}))
 


; Users.drafts

; Users.history

; Users.labels

; Users.messages

(defn messages-list
  "Returns a list of messages based on a given query."
  [query & {:keys [labels max-results page] :or {max-results 10}}]
  (let [params {:includeSpamTrash false

                :q query}]
    (api-request :get "/users/me/messages/" params :auth (get-token))))

(defn message-trash
  "Moves a specific message to the trash can."
  [message-id]
  (api-request :post (str "/users/me/messages/" message-id "/trash") {} :auth (get-token)))

(defn message-get
  "Returns the record for a given message id."
  [message-id & {:keys [format]
                 :or {format :full}}]
  (api-request :get (str "/users/me/messages/" message-id) {:format (name format)} :auth (get-token)))

(defn message-send
  "Sends an email to a specified user."
  [message & {:keys [thread-id]}]
  (let [message (if (map? message) (map->mime message) message)
