From 539916aaf8fe71a26bec9eb7080a91a43761db5e Mon Sep 17 00:00:00 2001 From: Gregory Wells Date: Thu, 30 Jul 2026 23:18:35 -0700 Subject: [PATCH] get event URLs --- main/dav_response.go | 3 +++ main/dav_server.go | 33 ++++++++++++++++++++++++++------- main/main.go | 4 +++- 3 files changed, 32 insertions(+), 8 deletions(-) diff --git a/main/dav_response.go b/main/dav_response.go index 08d3e16..2962b1b 100644 --- a/main/dav_response.go +++ b/main/dav_response.go @@ -23,3 +23,6 @@ type ResourceType struct { Collection *struct{} `xml:"DAV: collection"` Calendar *struct{} `xml:"urn:ietf:params:xml:ns:caldav calendar"` } + +type CalandarData struct { +} diff --git a/main/dav_server.go b/main/dav_server.go index db8c90d..09f160c 100644 --- a/main/dav_server.go +++ b/main/dav_server.go @@ -26,9 +26,14 @@ func init_dav_client() { client = &http.Client{} } +type Event struct { + Link string +} + type Calandar struct { DisplayName string Link string + Events []Event } type SimpleCalDavData struct { @@ -90,16 +95,19 @@ const XML_cal string = ` xmlns:C="urn:ietf:params:xml:ns:caldav"> - - - - - - + ` +// + +// +// +// +// +// + func get_calandar_data(cal Calandar, username string, password string) Calandar { req, _ := http.NewRequest( "REPORT", @@ -122,7 +130,18 @@ func get_calandar_data(cal Calandar, username string, password string) Calandar log.Fatal(err) } - fmt.Println(string(body)) + var davResp MultiStatus + err = xml.Unmarshal(body, &davResp) + if err != nil { + log.Fatal(err) + } + + for i := range len(davResp.Responses) { + newEvent := Event{ + Link: serverConfig.URL + davResp.Responses[i].Href, + } + cal.Events = append(cal.Events, newEvent) + } return cal } diff --git a/main/main.go b/main/main.go index f4a1e30..c477223 100644 --- a/main/main.go +++ b/main/main.go @@ -12,8 +12,10 @@ func main() { fmt.Printf("Users display name: %s\n", calDavData.DisplayName) fmt.Printf("Calandar Count: %d\n", len(calDavData.Calandars)) for i := range len(calDavData.Calandars) { + calDavData.Calandars[i] = get_calandar_data(calDavData.Calandars[i], serverConfig.Username, serverConfig.Password) + fmt.Printf("Cal %d is named %s\n", i, calDavData.Calandars[i].DisplayName) fmt.Printf("\tLink to cal: %s\n", calDavData.Calandars[i].Link) - calDavData.Calandars[i] = get_calandar_data(calDavData.Calandars[i], serverConfig.Username, serverConfig.Password) + fmt.Printf("\tEvent count: %d\n", len(calDavData.Calandars[i].Events)) } }