@@ -13,6 +13,7 @@ Class constructor($inProvider : cs.OAuth2Provider; $inParameters : Object)
1313
1414
1515 // Mark: - [Public]
16+ // Mark: - Calendars
1617 // ----------------------------------------------------
1718
1819
@@ -33,7 +34,7 @@ Function getCalendar($inID : Text; $inSelect : Text) : Object
3334 End if
3435
3536 If (Length (String ($inSelect ))> 0)
36- $urlParams + = "?$ select=" + $inSelect
37+ $urlParams + = Super . _getURLParamsFromObject ({ select: $inSelect })
3738 End if
3839
3940 var $URL : Text:= This ._getURL ()+ $urlParams
@@ -54,7 +55,7 @@ Function getCalendars($inParameters : Object) : Object
5455 Super ._clearErrorStack ()
5556 Super ._throwErrors (False )
5657
57- var $headers : Object
58+ var $headers : Object:= {}
5859 var $urlParams : Text:= ""
5960 var $delimiter : Text:= "?"
6061
@@ -63,43 +64,132 @@ Function getCalendars($inParameters : Object) : Object
6364 Else
6465 $urlParams := "me"
6566 End if
66- $urlParams + = "/calendars"
67+ $urlParams + = "/calendars" + Super . _getURLParamsFromObject ( $inParameters )
6768
6869 If ((Value type ($inParameters .search )= Is text) && (Length (String ($inParameters .search ))> 0))
69- $urlParams + = ($delimiter+ "$search= "+ $inParameters .search )
70- $delimiter := "&"
71- $headers := {ConsistencyLevel: "eventual" }
70+ $headers .ConsistencyLevel := "eventual"
7271 End if
73- If ((Value type ($inParameters .filter )= Is text) && (Length (String ($inParameters .filter ))> 0))
74- $urlParams + = ($delimiter+ "$filter= "+ $inParameters .filter )
75- $delimiter := "&"
76- End if
77- If (Not (Value type ($inParameters .select )= Is undefined))
78- var $select : Text
79- Case of
80- : (Value type ($inParameters .select )= Is text)
81- $select := $inParameters .select
82- : (Value type ($inParameters .select )= Is collection)
83- $select := $inParameters .select .join ("," ; ck ignore null or empty)
72+
73+ var $URL : Text:= This ._getURL ()+ $urlParams
74+ var $result : cs .GraphCalendarList := cs .GraphCalendarList .new (This ._getOAuth2Provider (); $URL ; $headers )
75+
76+ Super ._throwErrors (True )
77+
78+ return $result
79+
80+
81+ // Mark: - Events
82+ // ----------------------------------------------------
83+
84+
85+ Function getEvent ($inParameters : Object) : Object
86+
87+ /*
88+ GET /me/events/{id}
89+ GET /me/calendar/events/{id}
90+ GET /me/calendars/{id}/events/{id}
91+
92+ GET /users/{id | userPrincipalName}/events/{id}
93+ GET /users/{id | userPrincipalName}/calendar/events/{id}
94+ GET /users/{id | userPrincipalName}/calendars/{id}/events/{id}
95+ */
96+
97+ Super ._clearErrorStack ()
98+
99+ Case of
100+ : (Type ($inParameters .eventId )# Is text)
101+ Super ._throwError (10 ; {which: "\" eventId\" " ; function: "office365.calendar.getEvent" })
102+
103+ : (Length (String ($inParameters .eventId ))= 0)
104+ Super ._throwError (9 ; {which: "\" eventId\" " ; function: "office365.calendar.getEvent" })
105+
106+ Else
107+ var $headers : Object:= {}
108+ var $urlParams : Text:= ""
109+
110+ If (Length (String (This .userId ))> 0)
111+ $urlParams := "users/" + This .userId
112+ Else
113+ $urlParams := "me"
114+ End if
115+
116+ If ((Value type ($inParameters .calendarId )= Is text) && (Length (String ($inParameters .calendarId ))> 0))
117+ $urlParams + = "/calendars/" + cs .Tools .me .urlEncode ($inParameters .calendarId)
84118 Else
85- $select := String ($inParameters .select )
86- End case
87- If (Length ($select )> 0)
88- $urlParams + = ($delimiter+ "$select= "+ $select)
89- $delimiter := "&"
90- End if
119+ $urlParams + = "/calendar"
120+ End if
121+ $urlParams + = "/events/" + cs .Tools .me .urlEncode ($inParameters .eventId)
122+
123+ $urlParams + = Super ._getURLParamsFromObject ($inParameters )
124+
125+ var $prefer : Text:= ""
126+ If (Length (String ($inParameters .timeZone ))> 0)
127+ $prefer + = "outlook.timezone=" + $inParameters .timeZone + " "
128+ End if
129+ If (Length (String ($inParameters .bodyContentType ))> 0)
130+ $prefer + = "outlook.body-content-type=" + $inParameters .bodyContentType + " "
131+ End if
132+ If (Length ($prefer )> 0)
133+ $headers .Prefer := $prefer
134+ End if
135+
136+ var $URL : Text:= This ._getURL ()+ $urlParams
137+ var $response : Variant:= Super ._sendRequestAndWaitResponse ("GET" ; $URL ; $headers )
138+
139+ If (Value type ($response )= Is object)
140+ return Super ._cleanGraphObject ($response )
141+ End if
142+ End case
143+
144+ return Null
145+
146+
147+ Function getEvents ($inParameters : Object) : Object
148+
149+ Super ._clearErrorStack ()
150+ Super ._throwErrors (False )
151+
152+ /*
153+ A user's or group's default calendar.
154+
155+ GET /me/calendar/events
156+ GET /users/{id | userPrincipalName}/calendar/events
157+
158+ A user's calendar in the default calendarGroup.
159+
160+ GET /me/calendars/{id}/events
161+ GET /users/{id | userPrincipalName}/calendars/{id}/events
162+ */
163+ var $urlParams : Text:= ""
164+ If (Length (String (This .userId ))> 0)
165+ $urlParams + = "users/" + This .userId
166+ Else
167+ $urlParams + = "me"
91168 End if
92- If (Not (Value type ($inParameters .top )= Is undefined))
93- $urlParams + = ($delimiter+ "$top= "+ Choose (Value type ($inParameters .top )= Is text; $inParameters .top ; String ($inParameters .top )))
94- $delimiter := "&"
169+ If (Length (String ($inParameters .calendarId ))> 0)
170+ $urlParams + = "/calendars/" + $inParameters .calendarId
171+ Else
172+ $urlParams + = "/calendar"
173+ End if
174+ $urlParams + = "/events" + Super ._getURLParamsFromObject ($inParameters )
175+
176+ var $prefer : Text:= ""
177+ If (Length (String ($inParameters .timeZone ))> 0)
178+ $prefer + = "outlook.timezone=" + $inParameters .timeZone
179+ End if
180+ If (Length (String ($inParameters .bodyContentType ))> 0)
181+ $prefer + = ((Length ($prefer )> 0) ? "; " : "")+ "outlook.body-content-type=" + $inParameters .bodyContentType + " "
95182 End if
96- If ((Value type ($inParameters .orderBy )= Is text) && (Length (String ($inParameters .orderBy ))> 0))
97- $urlParams + = ($delimiter+ "$orderBy= "+ $inParameters .orderBy )
98- $delimiter := "&"
183+ If (Length ($prefer )> 0)
184+ $headers .Prefer := $prefer
185+ End if
186+
187+ If ((Value type ($inParameters .search )= Is text) && (Length (String ($inParameters .search ))> 0))
188+ $headers .ConsistencyLevel := "eventual"
99189 End if
100190
101191 var $URL : Text:= This ._getURL ()+ $urlParams
102- var $result : cs .GraphCalendarList := cs .GraphCalendarList .new (This ._getOAuth2Provider (); $URL ; $headers )
192+ var $result : cs .GraphEventList := cs .GraphEventList .new (This ._getOAuth2Provider (); $URL ; $headers )
103193
104194 Super ._throwErrors (True )
105195
0 commit comments