Loading...
Searching...
No Matches
DiscordRestClient::DiscordRestConnection Class Reference

Class for Discord REST connections; returns DiscordRestClient objects. More...

## Public Member Functions

| constructor (hash< auto > config, *hash< auto > attr)
| creates the DiscordRestConnection object
| constructor (string name, string description, string url=DiscordRestClient::DefaultUrl, hash< auto > attributes={}, hash< auto > options={})
| creates the DiscordRestConnection object
*string | getAppName ()
| Returns the data provider application name this connection serves, if any.
DataProvider::AbstractDataProvider | getDataProvider (*hash< auto > constructor_options)
| returns a data provider object for this connection
string | getType ()
| returns `"discord"`
bool | hasDataProvider ()
| returns True as this connection returns a data provider with the getDataProvider() method
| setUpdateOptionsCode (*code update_options)
| Can be called to set or clear a closure or call reference to be called when options are automatically updated.

## Public Attributes

const | ConnectionScheme = ...
| Connection entry info.
const | DataProviderSubtypeMap = ...
| Data provider subtypes supported.
const | DefaultConnectionUrl = "discord://discord.com/api"
| Default Discord REST API URL.

## Protected Member Functions

| checkSubtypeInfo ()
| Verifies that subtype info has been loaded from external modules.
hash< ConnectionSchemeInfo > | getConnectionSchemeInfoImpl ()
| Returns the ConnectionSchemeInfo hash for this object.
AbstractDataProvider | getDataProviderImpl (string subtype, *hash< auto > constructor_options)
| returns a data provider object for the connection and subtype passed as an argument
*hash< string, *hash< string, hash< DataProviderOptionInfo > > > | getDataProviderSubtypesImpl ()
| Returns a hash of supported data provider subtypes.
DiscordRestClient | getImpl (bool connect=True, *hash< auto > rtopts)
| returns a DiscordRestClient object
| loadSubtypeInfo ()
| Loads subtype info from external modules.
| setChildCapabilities ()
| Sets child data provider capabilities.

## Static Protected Member Functions

static Mutex | subtype_lck ()
| Data provider subtype lock.

## Static Protected Attributes

static hash< string, *hash< string, hash< DataProviderOptionInfo > > > | subtype_info
| Data provider subtype info.

## Detailed Description

Class for Discord REST connections; returns DiscordRestClient objects.

This class implements all options of RestClientConnection; in addition, this class provides the following default values for the following options:

- `oauth2_auth_args:` `access_type: offline`
- `oauth2_auth_url:` `https://accounts.Discord.com/o/oauth2/v2/auth`
- `oauth2_grant_type:` `authorization_code`
- `oauth2_token_url:` `https://oauth2.Discordapis.com/token`

See also
  DiscordRestClient::DiscordRestClient::constructor() for more information on the above options

## Member Function Documentation

## constructor() [1/2]

DiscordRestClient::DiscordRestConnection::constructor | ( | hash< auto > | config,
|  | *hash< auto > | attr )

creates the DiscordRestConnection object

Parameters

  config

  with the following keys:
  - name (required string): the connection name
  - display_name (optional string): the display name
  - short_desc (optional string): a short description in plain text
  - desc (optional string): a long description with markdown formatting
  - url (required string): the connection URL
  - opts (optional hash): connection options
  - logger (optional LoggerInterface object): logger for the connection

  attr

  optional connection attributes
  - monitor (optional bool): should the connection be monitored? Default: True
  - enabled (optional bool): is the connection enabled? Default: True
  - locked (optional bool): is the connection locked? Default: False
  - debug_data (optional bool): debug data? Default: False
  - tags (optional hash): tags for the connection; no default value

Exceptions

  CONNECTION-OPTION-ERROR | missing or invalid connection option or attribute

## constructor() [2/2]

DiscordRestClient::DiscordRestConnection::constructor | ( | string | name,
|  | string | description,
|  | string | url = DiscordRestClient::DefaultUrl,
|  | hash< auto > | attributes = {},
|  | hash< auto > | options = {} )

creates the DiscordRestConnection object

Parameters

  name | the name of the connection
  description | connection description
  url | connection URL (potentially with password info)
  attributes | various attributes. See below
  options | connection options

See ConnectionProvider::AbstractConnection::constructor() for `attributes` and `options` reference.

Exceptions

  CONNECTION-OPTION-ERROR | missing or invalid connection option

## getAppName()

*string DiscordRestClient::DiscordRestConnection::getAppName | ( |  | ) |

Returns the data provider application name this connection serves, if any.

Returns
  the data provider application name this connection serves, if any

## getDataProvider()

DataProvider::AbstractDataProvider DiscordRestClient::DiscordRestConnection::getDataProvider | ( | *hash< auto > | constructor_options | ) |

returns a data provider object for this connection

Parameters

  constructor_options | any additional constructor options for the data provider

Returns
  a data provider object for this connection

## getDataProviderImpl()

AbstractDataProvider DiscordRestClient::DiscordRestConnection::getDataProviderImpl | ( | string | subtype,
|  | *hash< auto > | constructor_options )

protected

returns a data provider object for the connection and subtype passed as an argument

Parameters

  subtype | the subtype of data provider supported, in case the connection can return multiple data providers
  constructor_options | any additional constructor options required by the data provider

Returns
  a data provider object for the connection and subtype passed as an argument

Exceptions

  DATA-PROVIDER-ERROR | this object does not support the data provider API or the given subtype is not valid

## getDataProviderSubtypesImpl()

*hash< string, *hash< string, hash< DataProviderOptionInfo > > > DiscordRestClient::DiscordRestConnection::getDataProviderSubtypesImpl | ( |  | ) |

protected

Returns a hash of supported data provider subtypes.

Returns
  a hash of supported data provider subtypes

## getImpl()

DiscordRestClient DiscordRestClient::DiscordRestConnection::getImpl | ( | bool | connect = True,
|  | *hash< auto > | rtopts )

protected

returns a DiscordRestClient object

Parameters

  connect | if True, then the connection is returned already connected
  rtopts | this connection type does not accept any runtime options, so this parameter is ignored

Returns
  a DiscordRestClient object

## hasDataProvider()

bool DiscordRestClient::DiscordRestConnection::hasDataProvider | ( |  | ) |

returns True as this connection returns a data provider with the getDataProvider() method

Returns
  True as this connection returns a data provider with the getDataProvider() method

See also
  getDataProvider()

## setUpdateOptionsCode()

DiscordRestClient::DiscordRestConnection::setUpdateOptionsCode | ( | *code | update_options | ) |

Can be called to set or clear a closure or call reference to be called when options are automatically updated.

The closure or call reference must have the following signature: `<update_options(hash<auto> options)`