Skip to content

Commit 8377a98

Browse files
committed
Github:11622
1 parent 59d8688 commit 8377a98

File tree

2 files changed

+128
-1
lines changed

2 files changed

+128
-1
lines changed

Project/Sources/Classes/GoogleCalendar.4dm

Lines changed: 114 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ Class constructor($inProvider : cs.OAuth2Provider; $inParameters : Object)
1414

1515

1616
// Mark: - [Public]
17+
// Mark: - Calendars
1718
// ----------------------------------------------------
1819

1920

@@ -22,7 +23,7 @@ Function getCalendar($inID : Text) : Object
2223
// GET https://www.googleapis.com/calendar/v3/users/me/calendarList/calendarId
2324

2425
var $response : Variant:=Null
25-
26+
2627
Case of
2728
: (Type($inID)#Is text)
2829
Super._throwError(10; {which: "\"calendarId\""; function: "google.calendar.getCalendar"})
@@ -81,3 +82,115 @@ Function getCalendars($inParameters : Object) : Object
8182
Super._throwErrors(True)
8283

8384
return $result
85+
86+
87+
// Mark: - [Public]
88+
// Mark: - Calendars
89+
// ----------------------------------------------------
90+
91+
92+
Function getEvent($inParameters : Object) : Object
93+
94+
// GET https://www.googleapis.com/calendar/v3/calendars/calendarId/events/eventId
95+
96+
var $response : Variant:=Null
97+
98+
Case of
99+
: (Type($inParameters.eventId)#Is text)
100+
Super._throwError(10; {which: "\"eventId\""; function: "google.calendar.getEvent"})
101+
102+
Else
103+
104+
var $eventId : Text:=(Length(String($inParameters.eventId))>0) ? $inParameters.eventId : "primary"
105+
var $calendarId : Text:=(Length(String($inParameters.calendarId))>0) ? $inParameters.calendarId : "primary"
106+
var $URL : Text:=Super._getURL()+"calendar/v3/calendars/"+cs.Tools.me.urlEncode($calendarID)+"/events/"+cs.Tools.me.urlEncode($eventId)
107+
var $headers : Object:={Accept: "application/json"}
108+
$response:=Super._sendRequestAndWaitResponse("GET"; $URL; $headers)
109+
110+
End case
111+
112+
return $response
113+
114+
115+
// ----------------------------------------------------
116+
117+
118+
Function getEvents($inParameters : Object) : Object
119+
120+
// GET https://www.googleapis.com/calendar/v3/calendars/calendarId/events
121+
Super._clearErrorStack()
122+
Super._throwErrors(False)
123+
124+
var $response : Object:=Null
125+
var $headers : Object:={Accept: "application/json"}
126+
var $calendarId : Text:=(Length(String($inParameters.calendarId))>0) ? $inParameters.calendarId : "primary"
127+
var $urlParams : Text:="calendar/v3/calendars/"+cs.Tools.me.urlEncode($calendarID)+"/events"
128+
var $delimiter : Text:="?"
129+
130+
If ((Value type($inParameters.eventTypes)=Is text) && (Length(String($inParameters.eventTypes))>0))
131+
$urlParams+=($delimiter+"eventTypes="+$inParameters.eventTypes)
132+
$delimiter:="&"
133+
End if
134+
If ((Value type($inParameters.iCalUID)=Is text) && (Length(String($inParameters.iCalUID))>0))
135+
$urlParams+=($delimiter+"iCalUID="+String($inParameters.iCalUID))
136+
$delimiter:="&"
137+
End if
138+
If (Not(Value type($inParameters.maxAttendees)=Is undefined))
139+
$urlParams+=($delimiter+"maxAttendees="+Choose(Value type($inParameters.maxAttendees)=Is text; $inParameters.maxAttendees; String($inParameters.maxAttendees)))
140+
$delimiter:="&"
141+
End if
142+
If (Not(Value type($inParameters.maxResults)=Is undefined))
143+
$urlParams+=($delimiter+"maxResults="+Choose(Value type($inParameters.maxResults)=Is text; $inParameters.maxResults; String($inParameters.maxResults)))
144+
$delimiter:="&"
145+
End if
146+
If ((Value type($inParameters.orderBy)=Is text) && (Length(String($inParameters.orderBy))>0))
147+
$urlParams+=($delimiter+"orderBy="+String($inParameters.orderBy))
148+
$delimiter:="&"
149+
End if
150+
If ((Value type($inParameters.search)=Is text) && (Length(String($inParameters.search))>0))
151+
$urlParams+=($delimiter+"search="+String($inParameters.search))
152+
$delimiter:="&"
153+
End if
154+
If (Not(Value type($inParameters.showDeleted)=Is undefined))
155+
$urlParams+=($delimiter+"showDeleted="+Choose(Bool($inParameters.showDeleted); "true"; "false"))
156+
$delimiter:="&"
157+
End if
158+
If (Not(Value type($inParameters.showHiddenInvitations)=Is undefined))
159+
$urlParams+=($delimiter+"showHiddenInvitations="+Choose(Bool($inParameters.showHiddenInvitations); "true"; "false"))
160+
$delimiter:="&"
161+
End if
162+
If (Not(Value type($inParameters.singleEvents)=Is undefined))
163+
$urlParams+=($delimiter+"singleEvents="+Choose(Bool($inParameters.singleEvents); "true"; "false"))
164+
$delimiter:="&"
165+
End if
166+
If ((Value type($inParameters.startDateTime)=Is text) && (Length(String($inParameters.startDateTime))>0))
167+
$urlParams+=($delimiter+"startDateTime="+String($inParameters.startDateTime))
168+
$delimiter:="&"
169+
End if
170+
If ((Value type($inParameters.endDateTime)=Is text) && (Length(String($inParameters.endDateTime))>0))
171+
$urlParams+=($delimiter+"endDateTime="+String($inParameters.endDateTime))
172+
$delimiter:="&"
173+
End if
174+
If ((Value type($inParameters.timeZone)=Is text) && (Length(String($inParameters.timeZone))>0))
175+
$urlParams+=($delimiter+"timeZone="+String($inParameters.timeZone))
176+
$delimiter:="&"
177+
End if
178+
If ((Value type($inParameters.updatedMin)=Is text) && (Length(String($inParameters.updatedMin))>0))
179+
$urlParams+=($delimiter+"updatedMin="+String($inParameters.updatedMin))
180+
$delimiter:="&"
181+
End if
182+
If ((Value type($inParameters.privateExtendedProperty)=Is text) && (Length(String($inParameters.privateExtendedProperty))>0))
183+
$urlParams+=($delimiter+"privateExtendedProperty="+String($inParameters.privateExtendedProperty))
184+
$delimiter:="&"
185+
End if
186+
If ((Value type($inParameters.sharedExtendedProperty)=Is text) && (Length(String($inParameters.sharedExtendedProperty))>0))
187+
$urlParams+=($delimiter+"sharedExtendedProperty="+String($inParameters.sharedExtendedProperty))
188+
$delimiter:="&"
189+
End if
190+
191+
var $URL : Text:=This._getURL()+$urlParams
192+
var $result : cs.GoogleEventList:=cs.GoogleEventList.new(This._getOAuth2Provider(); $URL; $headers)
193+
194+
Super._throwErrors(False)
195+
196+
return $response
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
Class extends _GoogleBaseList
2+
3+
Class constructor($inProvider : cs.OAuth2Provider; $inURL : Text; $inHeaders : Object)
4+
5+
Super($inProvider; $inURL; "items"; $inHeaders)
6+
7+
8+
// Mark: - [Public]
9+
// ----------------------------------------------------
10+
11+
12+
Function get events() : Collection
13+
14+
return This._internals._list

0 commit comments

Comments
 (0)