clj-exchange

Utility for Exchange Web Service Access



Documentation

clj-exchange: Accessing Exchange Web Services from Clojure

Accessing Exchange Web Services from Clojure

External:

Versions

Version Released Docs
0.0.1 2012-01-02 Marginalia
0.0.2 2014-01-26 Marginalia

Usage

(ns example
  (:gen-class)
  (:use [clj-exchange ews mapping time])
  (:import [com.microsoft.schemas.exchange.services._2006.messages FindItemType]))

(defn calendar-items [svc start end]
  (-> (build FindItemType
             {:Traversal "Shallow"
              :ItemShape {:BaseShape "AllProperties"}
              :CalendarView {:StartDate (time-millis start)
                             :EndDate (time-millis end)}
              :ParentFolderIds {:folderIdOrDistinguishedFolderId
                                [{:DistinguishedFolderId {:Id "calendar"}}]}})
      (ex-find-item svc)))

(defn -main [& [endpoint username pwd from to]]
  (let [svc (ews endpoint username pwd)
        c   (calendar-items svc from to)]
    (doseq [i (-> (parse-response c)
                  :ResponseMessages
                  :createItemResponseMessageOrDeleteItemResponseMessageOrGetItemResponseMessage
                  first
                  :JAXBElement :value
                  :RootFolder :Items :itemOrMessageOrCalendarItem
                  )]
      (println i))))


(comment
  (-main "https://example.com/EWS/exchange.asmx" "username" "password" "2012-01-01" "2012-01-06"))

Note: Some endpoint deployments could be case sensitive (e.g. /EWS/Exchange.asmx).

Dependencies

with leinigen

[clj-exchange "0.0.2"]

with maven

<dependency>
  <groupId>clj-exchange</groupId>
  <artifactId>clj-exchange</artifactId>
  <version>0.0.2</version>
</dependency>

License

Copyright (C) 2011, 2014 Michael Locher

Distributed under the Eclipse Public License, the same as Clojure.