Loading...
Searching...
No Matches
GoogleDataProvider::GoogleDataProviderBase Class Reference

The Google data provider base class. More...

`#include <GoogleDataProviderBase.qc.dox.h>`

Inheritance diagram for GoogleDataProvider::GoogleDataProviderBase:
[legend]

## Public Member Functions

| constructor ()
| Creates the object.
| constructor (GoogleRestClient::GoogleRestClient rest)
| Creates the object.
*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.
*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.
| setLogger (*LoggerInterface logger)
| Accepts a LoggerInterface object for logging (or clears it)
| updateConnectionObjects (object conn, object connobj)
| Update any connection used by the data provider.

## Static Public Member Functions

static string | cap (string word)
| Returns the given word capitalized.
static | checkResource (string api, list< string > resource_path)
| Check the given path for resources.
static hash< string, AbstractDataProviderType > | getApi (string api)
| Returns all output schemas for the given API.
static hash< string, AbstractDataProviderType > | getInputSchemaMap (string api, hash< auto > api_info)
| Creates the input schema map for the given API.
static hash< string, AbstractDataProviderType > | getInputSchemasForApi (string api)
| Returns all input schemas for the given API.
static DataProvider::AbstractDataProviderType | getInputTypeForSchema (string api, string schema)
| Returns an input / inbound data type for the given Google schema.
static string | getMethodForSchema (string api, string path)
| Returns the HTTP method for the given API.
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.
static hash< string, AbstractDataProviderType > | getOutputSchemaMap (string api, hash< auto > api_info)
| Creates the output schema map for the given API.
static string | getPathForSchema (string api, string resource)
| Returns the path for the given API.
static hash< auto > | getRequestInfo (string api)
| Returns all request types for the given API.
static DataProvider::AbstractDataProviderType | getRequestTypeForSchema (string api, string resource,...)
| Returns a request data type for the given API.
static DataProvider::AbstractDataProviderType | getRequestTypeForSchemaArgs (string api, string path, *list< auto > args)
| Returns a data type for the given request.
static DataProvider::AbstractDataProviderType | getResponseTypeForSchema (string api, string resource)
| Returns a response data type for the given API.
static GoogleRestClient::GoogleRestClient | getRestConnection (*hash< auto > options)
| Returns a GoogleRestClient connection from the options.
static DataProvider::AbstractDataProviderType | getTypeForSchema (string api, string schema)
| Returns a data type for the given Google schema.
static string | getUrlForApi (string api, RestClient::RestClient rest)
| Returns the URL for the given API.
static QoreDataField | makeFieldFromProperty (HashDataType h, string key, hash< auto > info, TypeResolverHelper unresolved, *bool for_input)
| Returns a hash from a Google schema description.
static HashDataType | makeHashFromSchemaInfo (string key, hash< auto > info, TypeResolverHelper unresolved, *bool for_input)
| Returns a hash from a Google schema description.
static ListDataType | makeListFromSchemaInfo (string key, hash< auto > info, TypeResolverHelper unresolved, *bool for_input)
| Returns a list from a Google schema description.
static hash< auto > | processRequest (string key, hash< auto > info, TypeResolverHelper unresolved)
| Returns a hash from a Google schema description.

## Public Attributes

const | DiscoveryUrlBase = "https://discovery.googleapis.com/discovery/v1/apis"
| Discovery URL base.
const | InitTimeout = 10s
| Initialization I/O timeout.

## Protected Member Functions

hash< auto > | backfillRequestBody (auto req)
| Used to set attributes in the request body that are not set in the request.
bool | needsBackfillRequestBody ()
| If the request body should be populated with missing values.

## Static Protected Member Functions

static Mutex | m ()
| schema cache lock
static AbstractDataProviderType | makeTypeFromSchemaInfo (HashDataType type, hash< auto > info, TypeResolverHelper unresolved, *bool for_input)
| Returns a type from a Google schema description.
static AbstractDataProviderType | makeTypeFromSchemaInfo (ListDataType type, string key, hash< auto > info, TypeResolverHelper unresolved, *bool for_input)
| Returns a type from a Google schema description.
static AbstractDataProviderType | makeTypeFromSchemaInfo (QoreDataField field, hash< auto > info, TypeResolverHelper unresolved, *bool for_input)
| Returns a type 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.
static hash< auto > | processRequests (string api, hash< auto > h, TypeResolverHelper unresolved)
| Process requests.

## Protected Attributes

*GoogleRestClient::GoogleRestClient | rest
| The REST client object for API calls.

## Static Protected Attributes

static hash< string, string > | api_map
| API -> URL map.
static hash< string, hash< auto > > | info_map
| Schema info: API -> info.
static hash< string, hash< string, AbstractDataProviderType > > | input_schema_map
| input schema cache; API -> schema name -> type
static hash< string, hash< string, AbstractDataProviderType > > | output_schema_map
| output schema cache; API -> schema name -> type
static hash< string, hash< auto > > | request_map
| schema cache; API -> request path ->

## Detailed Description

The Google data provider base class.

## Member Function Documentation

## prepareRequest()

*hash< auto > GoogleDataProvider::GoogleDataProviderBase::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.

Parameters

  req | The incoming request data
  implicit_path_args | any implicit path args

Returns
  a hash with the following keys:
  - `body:` a hash of body params
  - `path:` a hash of path params
  - `query:` a string of query params prefixed by "?"

## prepareRequestIntern()

*hash< auto > GoogleDataProvider::GoogleDataProviderBase::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.

Parameters

  req | The incoming request data
  implicit_path_args | any implicit path args

Returns
  a hash with the following keys:
  - `body:` a hash of body params
  - `path:` a hash of path params
  - `query:` a string of query params prefixed by "?"

## updateConnectionObjects()

GoogleDataProvider::GoogleDataProviderBase::updateConnectionObjects | ( | object | conn,
|  | object | connobj )

Update any connection used by the data provider.

Parameters

  conn | the new AbstractConnection object
  connobj | the new connection object itself (ex: RestClient for a "rest" connection)