$darkmode
Qore GoogleDataProvider Module Reference 1.0
GoogleCalendarFreeBusyDataProvider.qc.dox.h
1 // -*- mode: c++; indent-tabs-mode: nil -*-
3 
26 namespace GoogleDataProvider {
28 
31 
32 public:
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 
58 protected:
60  string id;
61 
63  *hash<auto> cal;
64 
65 public:
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 
89 protected:
90  auto doRequestImpl(auto req, *hash<auto> request_options);
91 public:
92 
93 
95 
97 protected:
98  *DataProvider::AbstractDataProviderType getRequestTypeImpl();
99 public:
100 
101 
103 
105 protected:
106  *DataProvider::AbstractDataProviderType getResponseTypeImpl();
107 public:
108 
109 
111  hash<DataProvider::DataProviderInfo> getStaticInfoImpl();
112 
113 };
114 
116 class GoogleCalendarFreeBusyRequestType : public DataProvider::HashDataType {
117 
118 public:
119 protected:
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 
146 public:
147 
150 
151 };
152 
154 class GoogleCalendarBusyPeriodDataType : public DataProvider::HashDataType {
155 
156 public:
157 protected:
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 
170 public:
171 
174 
175 };
176 
178 class GoogleCalendarFreeBusyDataType : public DataProvider::HashDataType {
179 
180 public:
181 protected:
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 
195 public:
196 
199 
200 };
201 
203 class GoogleCalendarFreeBusyBaseDataType : public DataProvider::HashDataType {
204 
205 public:
208 
209 };
210 
212 class GoogleCalendarFreeBusyResponseType : public DataProvider::HashDataType {
213 
214 public:
215 protected:
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 
240 public:
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
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.
hash< DataProvider::DataProviderInfo > getStaticInfoImpl()
Returns data provider static info.
*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
const True
Qore GoogleDataProvider module definition.
Definition: GoogleCalendarBaseDataProvider.qc.dox.h:26
const SoftTimestampDataProviderStringType
Data provider type for timestamps in API arguments.
Definition: GoogleDataProvider.qc.dox.h:147