Qore GoogleDataProvider Module Reference 1.0
Loading...
Searching...
No Matches
GoogleCalendarFreeBusyDataProvider.qc.dox.h
1// -*- mode: c++; indent-tabs-mode: nil -*-
3
26namespace GoogleDataProvider {
28
31
32public:
34 const ProviderInfo = <DataProviderInfo>{
35 "name": "freeBusy",
36 "desc": "Google calendar free/busy query API data provider",
37 "type": "GoogleCalendarFreeBusyDataProvider",
38 "constructor_options": GoogleDataProvider::ConstructorOptions + {
39 "id": <DataProviderOptionInfo>{
40 "type": AbstractDataProviderTypeMap."string",
41 "desc": "The calendar ID",
42 },
43 },
44 "supports_request": True,
45 };
46
48 const ProviderSummaryInfo = cast<hash<DataProviderSummaryInfo>>(ProviderInfo{
49 AbstractDataProvider::DataProviderSummaryInfoKeys
50 });
51
54
57
58protected:
60 string id;
61
63 *hash<auto> cal;
64
65public:
66
68 constructor(*hash<auto> options);
69
70
72 constructor(GoogleRestClient::GoogleRestClient rest, string id, *hash<auto> cal) ;
73
74
76 string getName();
77
78
80 *string getDesc();
81
82
84
89protected:
90 auto doRequestImpl(auto req, *hash<auto> request_options);
91public:
92
93
95
97protected:
98 *DataProvider::AbstractDataProviderType getRequestTypeImpl();
99public:
100
101
103
105protected:
106 *DataProvider::AbstractDataProviderType getResponseTypeImpl();
107public:
108
109
111 hash<DataProvider::DataProviderInfo> getStaticInfoImpl();
112
113};
114
116class GoogleCalendarFreeBusyRequestType : public DataProvider::HashDataType {
117
118public:
119protected:
121 const Fields = {
122 "timeMin": {
124 "desc": "The end of the interval for the query",
125 },
126 "timeMax": {
128 "desc": "The start of the interval for the query",
129 },
130 "timeZone": {
131 "type": AbstractDataProviderTypeMap."*string",
132 "desc": "Time zone used in the response. The default is UTC",
133 },
134 "groupExpansionMax": {
135 "type": AbstractDataProviderTypeMap."*int",
136 "desc": "Maximal number of calendar identifiers to be provided for a single group. Optional. An "
137 "error is returned for a group with more members than this value. Maximum value is `100`",
138 },
139 "calendarExpansionMax": {
140 "type": AbstractDataProviderTypeMap."*int",
141 "desc": "Maximal number of calendars for which FreeBusy information is to be provided. Optional. "
142 "Maximum value is `50`",
143 },
144 };
145
146public:
147
150
151};
152
154class GoogleCalendarBusyPeriodDataType : public DataProvider::HashDataType {
155
156public:
157protected:
159 const Fields = {
160 "start": {
161 "type": AbstractDataProviderTypeMap."softdate",
162 "desc": "The (inclusive) start of the time period",
163 },
164 "end": {
165 "type": AbstractDataProviderTypeMap."softdate",
166 "desc": "The (exclusive) end of the time period",
167 },
168 };
169
170public:
171
174
175};
176
178class GoogleCalendarFreeBusyDataType : public DataProvider::HashDataType {
179
180public:
181protected:
183 const Fields = {
184 "errors": {
185 "type": new ListDataType("GoogleCalendarGroupErrorType", AutoHashType, True),
186 "desc": "Optional error(s) (if computation for the group failed)",
187 },
188 "busy": {
189 "type": new ListDataType("GoogleCalendarGroupCalendarBusyType",
191 "desc": "List of time ranges during which this calendar should be regarded as busy",
192 },
193 };
194
195public:
196
199
200};
201
203class GoogleCalendarFreeBusyBaseDataType : public DataProvider::HashDataType {
204
205public:
208
209};
210
212class GoogleCalendarFreeBusyResponseType : public DataProvider::HashDataType {
213
214public:
215protected:
217 const Fields = {
218 "kind": {
219 "type": AbstractDataProviderTypeMap."string",
220 "desc": "The type of the collection",
221 },
222 "timeMax": {
223 "type": AbstractDataProviderTypeMap."softdate",
224 "desc": "The start of the interval for the query",
225 },
226 "timeMin": {
227 "type": AbstractDataProviderTypeMap."softdate",
228 "desc": "The end of the interval for the query",
229 },
230 "groups": {
231 "type": AbstractDataProviderTypeMap."*hash",
232 "desc": "Expansion of groups",
233 },
234 "calendars": {
236 "desc": "List of free/busy information for calendars",
237 },
238 };
239
240public:
241
244
245};
246};
Google calendar busy period data type.
Definition: GoogleCalendarFreeBusyDataProvider.qc.dox.h:154
const Fields
Field descriptions.
Definition: GoogleCalendarFreeBusyDataProvider.qc.dox.h:159
Google calendar free/busy data type.
Definition: GoogleCalendarFreeBusyDataProvider.qc.dox.h:203
The Google calendar free/busy API data provider.
Definition: GoogleCalendarFreeBusyDataProvider.qc.dox.h:30
auto doRequestImpl(auto req, *hash< auto > request_options)
Makes a request and returns the response.
const RequestType
Request type.
Definition: GoogleCalendarFreeBusyDataProvider.qc.dox.h:53
string getName()
Returns the data provider name.
const ProviderSummaryInfo
Provider summary info.
Definition: GoogleCalendarFreeBusyDataProvider.qc.dox.h:48
const ResponseType
Response type.
Definition: GoogleCalendarFreeBusyDataProvider.qc.dox.h:56
hash< DataProvider::DataProviderInfo > getStaticInfoImpl()
Returns data provider static info.
constructor(GoogleRestClient::GoogleRestClient rest, string id, *hash< auto > cal)
Creates the object from a REST connection.
*DataProvider::AbstractDataProviderType getRequestTypeImpl()
Returns the description of a successful request message, if any.
*hash< auto > cal
The calendar's metadata.
Definition: GoogleCalendarFreeBusyDataProvider.qc.dox.h:63
string id
The calendar's ID.
Definition: GoogleCalendarFreeBusyDataProvider.qc.dox.h:60
*DataProvider::AbstractDataProviderType getResponseTypeImpl()
Returns the description of a response message, if this object represents a response message.
const ProviderInfo
Provider info.
Definition: GoogleCalendarFreeBusyDataProvider.qc.dox.h:34
constructor(*hash< auto > options)
Creates the object from constructor options.
*string getDesc()
Returns the data provider description.
Google calendar free/busy data type.
Definition: GoogleCalendarFreeBusyDataProvider.qc.dox.h:178
const Fields
Field descriptions.
Definition: GoogleCalendarFreeBusyDataProvider.qc.dox.h:183
Google calendar free/busy query request type.
Definition: GoogleCalendarFreeBusyDataProvider.qc.dox.h:116
const Fields
Field descriptions.
Definition: GoogleCalendarFreeBusyDataProvider.qc.dox.h:121
Google calendar free/busy query request type.
Definition: GoogleCalendarFreeBusyDataProvider.qc.dox.h:212
const Fields
Field descriptions.
Definition: GoogleCalendarFreeBusyDataProvider.qc.dox.h:217
The Google data provider base class.
Definition: GoogleDataProviderBase.qc.dox.h:28
*GoogleRestClient::GoogleRestClient rest
The REST client object for API calls.
Definition: GoogleDataProviderBase.qc.dox.h:33
const ConstructorOptions
Constructor options.
Definition: GoogleDataProvider.qc.dox.h:40
Timestamp string type.
Definition: GoogleDataProvider.qc.dox.h:150
Qore GoogleDataProvider module definition.
Definition: GoogleCalendarBaseDataProvider.qc.dox.h:26