Commit Graph
100 Commits
Author SHA1 Message Date
Simon Ser feea39c898 carddav: fix server appearing as read-only in Evolution 2020-01-30 00:43:23 +01:00
Simon Ser 8937358ac1 Allow servers to return DAV capabilities in OPTIONS 2020-01-29 18:03:47 +01:00
Simon Ser 5f03e421d3 carddav: fix addressbook-home-set>href namespace 2020-01-29 17:41:28 +01:00
Simon Ser 1f509de404 carddav: honor address-data in addressbook-query 2020-01-27 10:30:19 +01:00
Simon Ser 29cccc7ef9 carddav: add query filter support in server
Closes: https://github.com/emersion/go-webdav/issues/18
2020-01-24 16:34:57 +01:00
Simon Ser 73b67b62b1 carddav: add client support for query filter
References: https://github.com/emersion/go-webdav/issues/18
2020-01-24 12:24:35 +01:00
Simon Ser 5ada08f6ab carddav: add full query AST 2020-01-24 11:25:58 +01:00
Simon Ser e56ab47c43 carddav: add negateCondition 2020-01-23 19:32:10 +01:00
Simon Ser 30977aac83 carddav: add matchType 2020-01-23 19:27:31 +01:00
Simon Ser 38b729ad9c carddav: remove filter.MarshalText
This isn't necessary, we can just straight up let encoding/xml use the
string.
2020-01-23 19:21:00 +01:00
Simon Ser 94f47fa001 carddav: add limit support to addressbook-query
References: https://github.com/emersion/go-webdav/issues/18
2020-01-23 10:35:14 +01:00
Simon Ser 70c3bffdf3 carddav: add filter and limit XML definitions 2020-01-22 20:36:35 +01:00
Simon Ser cd5945aace carddav: add AddressBook{Query,MultiGet}.AllProp 2020-01-22 19:18:58 +01:00
Simon Ser 7e29f37bd8 carddav: add allprop and propname support to query and multiget in server 2020-01-22 18:59:01 +01:00
Simon Ser 0a251a8dfb carddav: add AddressObject.{ModTime,ETag} 2020-01-22 15:35:36 +01:00
Simon Ser 2eb6e89979 carddav: add DELETE support to server 2020-01-22 15:16:41 +01:00
Simon Ser aa750836d4 carddav: add PUT support to server 2020-01-22 15:14:49 +01:00
Simon Ser bf97060e19 carddav: don't support PROPPATCH
PROPPATCH can't be used to change an address object's data. For now,
let's not support it.
2020-01-22 14:52:14 +01:00
Simon Ser 6de76c94b8 internal: check for HTTP errors in Client.Do
Closes: https://github.com/emersion/go-webdav/issues/19
2020-01-22 13:22:45 +01:00
Simon Ser 59ad6f4d76 cmd/webdav-server: new command 2020-01-22 13:17:52 +01:00
Simon Ser 6d229f4e8a webdav: add COPY support to server 2020-01-22 13:00:42 +01:00
Simon Ser fda38c8f93 webdav: add recursive arg to Client.Readdir 2020-01-22 12:06:36 +01:00
Simon Ser f04c1c9421 webdav: add support for ETag to client & server 2020-01-22 12:03:58 +01:00
Simon Ser 3268102d5a webdav: add MOVE support to server 2020-01-22 11:43:36 +01:00
Simon Ser 83cb67070c webdav: fix LocalFileSystem.Readdir not returning children 2020-01-22 11:14:09 +01:00
Simon Ser 6eeeccb96e all: encode hrefs, replace hrefs with path in public API
Closes: https://github.com/emersion/go-webdav/issues/14
Closes: https://github.com/emersion/go-webdav/issues/16
2020-01-22 11:07:30 +01:00
Simon Ser 72c96af206 webdav: move recursive PROPFIND to backend
Closes: https://github.com/emersion/go-webdav/issues/22
2020-01-22 10:41:20 +01:00
Simon Ser 307a998a46 webdav: add Client.CopyAll 2020-01-22 10:16:48 +01:00
Simon Ser 489be203a1 webdav: add Client.MoveAll 2020-01-22 10:15:44 +01:00
Simon Ser d30d4d2932 internal: add helpers for the Overwrite header 2020-01-22 10:09:51 +01:00
Simon Ser c0a91b0085 internal: move Depth to internal.go 2020-01-22 10:06:00 +01:00
Simon Ser 90fe8dedf7 internal: add PROPPATCH support to server 2020-01-21 23:18:27 +01:00
Simon Ser 4cee748898 webdav: fix trailing getMod in client 2020-01-21 23:14:57 +01:00
Simon Ser 83272e2195 webdav: make FileInfo.ModTime optional in client 2020-01-21 22:47:48 +01:00
Simon Ser 82bdd23de4 webdav: populate FileInfo.MIMEType in client 2020-01-21 22:46:56 +01:00
Simon Ser 23fa5c582c webdav: make FileInfo.ModTime optional 2020-01-21 22:44:10 +01:00
Simon Ser 02d1a7dbe8 webdav: add MIMEType to FileInfo 2020-01-21 22:43:39 +01:00
Simon Ser c673e7c7e7 webdav: replace os.FileInfo with our own type 2020-01-21 22:36:42 +01:00
Simon Ser 6023eb58a0 webdav: replace File with io.ReadCloser
Closes: https://github.com/emersion/go-webdav/issues/17
2020-01-21 22:19:34 +01:00
Simon Ser a5d750f1e1 webdav: add Client.Mkdir 2020-01-21 22:06:47 +01:00
Simon Ser e9e1f102de webdav: add MKCOL support to server 2020-01-21 22:05:59 +01:00
Simon Ser a2ad695145 webdav: move WebDAV semantics handling to LocalFileSystem 2020-01-21 21:49:54 +01:00
Simon Ser 04bcea1ee8 webdav: add Client.RemoveAll 2020-01-21 21:48:07 +01:00
Simon Ser 41b68829e8 webdav: add DELETE support to server 2020-01-21 21:46:01 +01:00
Simon Ser 69f88b075a webdav: add PUT to allowed methods for regular files 2020-01-21 21:35:37 +01:00
Simon Ser 9db481fa51 webdav: add Client.Create 2020-01-21 21:32:43 +01:00
Simon Ser 7d6de88179 webdav: add support for PUT to server 2020-01-21 21:19:44 +01:00
Simon Ser 45774fe572 carddav: simplify variable names 2020-01-21 21:04:19 +01:00
Simon Ser ffc628aed9 webdav: fix URL encoding in PROPFIND handler 2020-01-21 21:02:41 +01:00
Simon Ser 0469c3d389 all: add basic docs 2020-01-21 21:01:18 +01:00
Simon Ser f6d0a37ea4 webdav: properly URL-encode hrefs in PROPFIND response 2020-01-21 20:08:58 +01:00
Simon Ser 4e4a5abed2 webdav: remove File.Readdir, add FileSystem.Readdir
References: https://github.com/emersion/go-webdav/issues/15
2020-01-21 19:59:41 +01:00
Simon Ser e851e6e3f1 webdav: remove File.Stat, add FileSystem.Stat
References: https://github.com/emersion/go-webdav/issues/15
2020-01-21 19:55:02 +01:00
Simon Ser 6526cef9eb webdav: add Client.Readdir 2020-01-21 18:55:29 +01:00
Simon Ser 8e50764757 webdav: add basic Client.Open 2020-01-21 18:47:29 +01:00
Simon Ser e84362bc0a webdav: add Client.Stat 2020-01-21 18:41:46 +01:00
Simon Ser 63cdea07be internal: allow Response.DecodeProp to decode multiple values 2020-01-21 18:41:25 +01:00
Simon Ser 3e41eefd12 internal: properly encode path in Client.NewRequest 2020-01-20 13:40:26 +01:00
Simon Ser d21315e9fc Fix host trailing dot in Discover 2020-01-20 13:17:19 +01:00
Simon Ser 19140af10d carddav: add Discover 2020-01-20 11:15:22 +01:00
Simon Ser 3a61646ab4 carddav: add current-user-principal to server 2020-01-20 10:56:25 +01:00
Simon Ser d8ce7d353d internal: check for response error in Multistatus.Get 2020-01-19 15:41:08 +01:00
Simon Ser 6e0ea58de1 carddav: populate AddressBook.{Name,MaxResourceSize} in client 2020-01-19 15:29:51 +01:00
Simon Ser c4718a3a49 carddav: add addressbook-home-set to server 2020-01-19 15:10:54 +01:00
Simon Ser 6bac674701 carddav: add max-resource-size to serve 2020-01-19 15:06:09 +01:00
Simon Ser 238e72b73e carddav: add addressbook-supprted-address-data to server 2020-01-19 15:00:40 +01:00
Simon Ser edfc2804b5 carddav: add displayname and addressbook-description to server 2020-01-19 14:53:58 +01:00
Simon Ser 797b2f8fc5 carddav: add address-data to server responses 2020-01-19 12:08:53 +01:00
Simon Ser 4a2a520522 carddav: add server support for REPORT addressbook-query 2020-01-19 12:02:18 +01:00
Simon Ser b311299ac0 internal: add Prop.Get, Prop.Decode 2020-01-19 12:01:55 +01:00
Simon Ser f3f1c8b58a internal: introduce DecodeXMLRequest, ServeXML and ServeMultistatus 2020-01-19 11:12:45 +01:00
Simon Ser 60e5d57cda carddav: implement REPORT addressbook-multiget 2020-01-19 11:05:56 +01:00
Simon Ser 402593c5c6 carddav: define XML names as globals 2020-01-18 12:58:53 +01:00
Simon Ser bf666bb2fb Ensure resourcetype is always defined 2020-01-17 17:09:44 +01:00
Simon Ser 34b2ebf940 all: use variables for xml.Name values 2020-01-17 17:09:23 +01:00
Simon Ser 557972089c carddav: add very basic server implementation 2020-01-17 16:59:29 +01:00
Simon Ser 13d70be046 carddav: rename Address to AddressObject 2020-01-17 16:20:05 +01:00
Simon Ser 883dafaf41 internal: fix Error element definition 2020-01-17 14:47:10 +01:00
Simon Ser 7cb302246b internal: add NewPropfindResponse helper 2020-01-17 14:40:29 +01:00
Simon Ser e2da5769f5 Improve OPTIONS handling 2020-01-17 11:41:44 +01:00
Simon Ser f4c21ca352 webdav: make HEAD/GET on a dir fail 2020-01-17 11:32:13 +01:00
Simon Ser 326c4b9b6f internal: add Handler 2020-01-17 11:30:42 +01:00
Simon Ser 3beeb23f7c internal: drop unused field in Client 2020-01-16 18:08:26 +01:00
Simon Ser 23433b3eb1 readme: license is now MIT 2020-01-16 16:30:11 +01:00
Simon Ser cabf33219e Add Client.SetBasicAuth 2020-01-15 23:45:37 +01:00
Simon Ser dbdd296d38 webdav: advertise class 3 support in OPTIONS 2020-01-15 23:17:43 +01:00
Simon Ser 0687eb165e webdav: add missing PROPFIND to OPTIONS response 2020-01-15 23:10:51 +01:00
Simon Ser 4c4624e225 webdav: add support for allprop and propname in PROPFIND 2020-01-15 23:03:09 +01:00
Simon Ser ae0541654a inetrnal: rename Date to Time, make it a Text{Marshaler,Unmarshaler} 2020-01-15 19:32:59 +01:00
Simon Ser 3d37e49ca0 internal: make Status a Text{Marshaler,Unmarshaler} 2020-01-15 19:23:09 +01:00
Simon Ser 040c38f1b6 webdav: add support for more props 2020-01-15 19:08:38 +01:00
Simon Ser d83efedfb5 webdav: list children in PROPFIND 2020-01-15 18:39:25 +01:00
Simon Ser ae93da82c1 webdav: add minimal server implementation 2020-01-15 18:21:27 +01:00
Simon Ser 42765234a8 internal: add Depth, Client.Propfind 2020-01-15 12:30:42 +01:00
Simon Ser 2b841a9234 carddav: add support for <addressbook-multiget> 2020-01-15 12:09:42 +01:00
Simon Ser 5fe39bbc13 internal: remove xml.Name arg from Response.DecodeProp
The xml.Name is now retrieved from the interface{} argument via
reflection.
2020-01-15 11:44:27 +01:00
Simon Ser 25ab0b2076 internal: add EncodeProp
This allows to simplify carddav.QueryAddressBook's request marshaling.
2020-01-15 11:17:38 +01:00
Simon Ser 45cd1977d4 Add go.sum 2020-01-15 11:17:07 +01:00
Simon Ser ee5864490e internal: make sure rawXMLValueReader is an xml.TokenReader 2020-01-15 11:16:30 +01:00
Simon Ser 44f7f84ef5 internal: add EncodeRawXMLElement 2020-01-15 11:14:34 +01:00