|
- package alpscarddav
-
- import (
- "fmt"
- "net/http"
- "net/url"
-
- "git.sr.ht/~emersion/alps"
- "github.com/emersion/go-webdav/carddav"
- )
-
- var errNoAddressBook = fmt.Errorf("carddav: no address book found")
-
- type authRoundTripper struct {
- upstream http.RoundTripper
- session *alps.Session
- }
-
- func (rt *authRoundTripper) RoundTrip(req *http.Request) (*http.Response, error) {
- rt.session.SetHTTPBasicAuth(req)
- return rt.upstream.RoundTrip(req)
- }
-
- func newClient(u *url.URL, session *alps.Session) (*carddav.Client, error) {
- rt := authRoundTripper{
- upstream: http.DefaultTransport,
- session: session,
- }
- return carddav.NewClient(&http.Client{Transport: &rt}, u.String())
- }
-
- type AddressObject struct {
- *carddav.AddressObject
- }
-
- func newAddressObjectList(aos []carddav.AddressObject) []AddressObject {
- l := make([]AddressObject, len(aos))
- for i := range aos {
- l[i] = AddressObject{&aos[i]}
- }
- return l
- }
-
- func (ao AddressObject) URL() string {
- return "/contacts/" + url.PathEscape(ao.Path)
- }
|