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))
}
}