39 *GoogleRestClient::GoogleRestClient
rest;
83 *hash<auto>
prepareRequest(
auto req, *hash<string, softstring> implicit_path_args, *
bool backfill_request_body);
108 *hash<auto>
prepareRequestIntern(AbstractDataProviderType request_type,
auto req0, *hash<string, softstring> implicit_path_args, *
bool backfill_request_body);
111 string getQueryValue(
string key, AbstractDataProviderType type,
auto val);
115 static string cap(
string word);
126 static hash<auto> getRequestInfoForResource(
string api,
string resource);
160 static hash<auto>
processRequests(
string api, hash<auto> h, TypeResolverHelper unresolved);
165 static hash<auto>
processRequest(
string key, hash<auto> info, TypeResolverHelper unresolved);
168 static hash<string, AbstractDataProviderType>
getApi(
string api);
174 static hash<string, AbstractDataProviderType>
getInputSchemaMap(
string api, hash<auto> api_info);
179 static hash<auto> getSchemaInfo(
string api);
183 static AbstractDataProviderType
makeTypeFromSchemaInfo(HashDataType type, hash<auto> info, TypeResolverHelper unresolved, *
bool for_input);
189 static AbstractDataProviderType
makeTypeFromSchemaInfo(ListDataType type,
string key, hash<auto> info, TypeResolverHelper unresolved, *
bool for_input);
195 static AbstractDataProviderType
makeTypeFromSchemaInfo(QoreDataField field, hash<auto> info, TypeResolverHelper unresolved, *
bool for_input);
201 static AbstractDataProviderType
makeTypeFromSchemaInfo(
string key, hash<auto> info, TypeResolverHelper unresolved, *
bool for_input);
212 static QoreDataField
makeFieldFromProperty(HashDataType h,
string key, hash<auto> info, TypeResolverHelper unresolved, *
bool for_input);
220class TypeResolverHelper {
227 list<hash<auto>> lists;
230 list<hash<auto>> hashes;
233 list<hash<auto>> fields;
236 list<hash<auto>> requests;
239 list<hash<auto>> responses;
243 addRequestTypeReference(
string key,
string ref, *
bool required);
246 addResponseTypeReference(
string key,
string ref, *
bool required);
249 AbstractDataProviderType addReference(HashDataType type,
string ref, *
bool required);
252 AbstractDataProviderType addReference(ListDataType type,
string ref);
255 AbstractDataProviderType addReference(QoreDataField field,
string ref);
258 resolve(hash<string, AbstractDataProviderType> schemas);
261 hash<auto> resolveRequests(
string api, hash<auto> req, hash<
string, hash<string, AbstractDataProviderType>> input_schema_map, hash<
string, hash<string, AbstractDataProviderType>> output_schema_map);
264 static AbstractDataProviderType getType(
string ref, hash<string, AbstractDataProviderType> schemas, *
bool required);
The Google data provider base class.
Definition GoogleDataProviderBase.qc.dox.h:28
static string cap(string word)
Returns the given word capitalized.
static AbstractDataProviderType makeTypeFromSchemaInfo(ListDataType type, string key, hash< auto > info, TypeResolverHelper unresolved, *bool for_input)
Returns a type from a Google schema description.
static DataProvider::AbstractDataProviderType getInputTypeForSchema(string api, string schema)
Returns an input / inbound data type for the given Google schema.
static DataProvider::AbstractDataProviderType getResponseTypeForSchema(string api, string resource)
Returns a response data type for the given API.
static DataProvider::AbstractDataProviderType getRequestTypeForSchema(string api, string resource,...)
Returns a request data type for the given API.
static hash< string, hash< auto > > request_map
schema cache; API -> request path ->
Definition GoogleDataProviderBase.qc.dox.h:55
static Mutex m()
schema cache lock
static hash< string, AbstractDataProviderType > getApi(string api)
Returns all output schemas for the given API.
static hash< string, hash< string, AbstractDataProviderType > > input_schema_map
input schema cache; API -> schema name -> type
Definition GoogleDataProviderBase.qc.dox.h:48
static DataProvider::AbstractDataProviderType getRequestTypeForSchemaArgs(string api, string path, *list< auto > args)
Returns a data type for the given request.
*hash< auto > prepareRequest(auto req, *hash< string, softstring > implicit_path_args, *bool backfill_request_body)
Prepares a request with a request type created from the Discovery API.
static string getMethodForSchema(string api, string path)
Returns the HTTP method for the given API.
static GoogleRestClient::GoogleRestClient getRestConnection(*hash< auto > options)
Returns a GoogleRestClient connection from the options.
static HashDataType makeHashFromSchemaInfo(string key, hash< auto > info, TypeResolverHelper unresolved, *bool for_input)
Returns a hash from a Google schema description.
static AbstractDataProviderType makeTypeFromSchemaInfo(string key, hash< auto > info, TypeResolverHelper unresolved, *bool for_input)
Returns a type from a Google schema description.
*hash< auto > prepareRequestIntern(AbstractDataProviderType request_type, auto req0, *hash< string, softstring > implicit_path_args, *bool backfill_request_body)
Prepares a request with a request type created from the Discovery API.
static hash< string, hash< string, AbstractDataProviderType > > output_schema_map
output schema cache; API -> schema name -> type
Definition GoogleDataProviderBase.qc.dox.h:51
*GoogleRestClient::GoogleRestClient rest
The REST client object for API calls.
Definition GoogleDataProviderBase.qc.dox.h:39
static hash< auto > getRequestInfo(string api)
Returns all request types for the given API.
static string getUrlForApi(string api, RestClient::RestClient rest)
Returns the URL for the given API.
constructor()
Creates the object.
static AbstractDataProviderType makeTypeFromSchemaInfo(HashDataType type, hash< auto > info, TypeResolverHelper unresolved, *bool for_input)
Returns a type from a Google schema description.
const InitTimeout
Initialization I/O timeout.
Definition GoogleDataProviderBase.qc.dox.h:35
static DataProvider::AbstractDataProviderType getTypeForSchema(string api, string schema)
Returns a data type for the given Google schema.
static hash< string, AbstractDataProviderType > getInputSchemasForApi(string api)
Returns all input schemas for the given API.
hash< auto > backfillRequestBody(auto req)
Used to set attributes in the request body that are not set in the request.
static checkResource(string api, list< string > resource_path)
Check the given path for resources.
updateConnectionObjects(object conn, object connobj)
Update any connection used by the data provider.
static string getPathForSchema(string api, string resource)
Returns the path for the given API.
static ListDataType makeListFromSchemaInfo(string key, hash< auto > info, TypeResolverHelper unresolved, *bool for_input)
Returns a list from a Google schema description.
static QoreDataField makeFieldFromProperty(HashDataType h, string key, hash< auto > info, TypeResolverHelper unresolved, *bool for_input)
Returns a hash from a Google schema description.
static hash< string, AbstractDataProviderType > getOutputSchemaMap(string api, hash< auto > api_info)
Creates the output schema map for the given API.
bool needsBackfillRequestBody()
If the request body should be populated with missing values.
constructor(GoogleRestClient::GoogleRestClient rest)
Creates the object.
static hash< auto > processRequests(string api, hash< auto > h, TypeResolverHelper unresolved)
Process requests.
setLogger(*LoggerInterface logger)
Accepts a LoggerInterface object for logging (or clears it)
static hash< string, string > api_map
API -> URL map.
Definition GoogleDataProviderBase.qc.dox.h:42
static hash< auto > processRequest(string key, hash< auto > info, TypeResolverHelper unresolved)
Returns a hash from a Google schema description.
static *hash< string, bool > getMethodsForResource(string api, list< string > resource_path, *hash< auto > path_args)
Returns a hash of all non-subscription methods for the given resource.
const DiscoveryUrlBase
Discovery URL base.
Definition GoogleDataProviderBase.qc.dox.h:32
static AbstractDataProviderType makeTypeFromSchemaInfo(QoreDataField field, hash< auto > info, TypeResolverHelper unresolved, *bool for_input)
Returns a type from a Google schema description.
static hash< string, hash< auto > > info_map
Schema info: API -> info.
Definition GoogleDataProviderBase.qc.dox.h:45
static hash< string, AbstractDataProviderType > getInputSchemaMap(string api, hash< auto > api_info)
Creates the input schema map for the given API.
Qore GoogleDataProvider module definition.
Definition GoogleApiDataProvider.qc.dox.h:26