Exception: IGMarkets::IGMarketsError

Inherits:
StandardError
  • Object
show all
Defined in:
lib/ig_markets/errors.rb,
lib/ig_markets/errors.rb

Overview

Base class for all errors raised by this gem.

Direct Known Subclasses

Errors::APIKeyDisabledError, Errors::APIKeyInvalidError, Errors::APIKeyMissingError, Errors::APIKeyRejectedError, Errors::APIKeyRestrictedError, Errors::APIKeyRevokedError, Errors::AccountAccessDeniedError, Errors::AccountAlreadyCurrentError, Errors::AccountMigratedError, Errors::AccountNotYetActivatedError, Errors::AccountSuspendedError, Errors::AccountTokenInvalidError, Errors::AccountTokenMissingError, Errors::AllAccountsPendingError, Errors::AllAccountsSuspendedError, Errors::AuthenticationTimeoutError, Errors::CannotDeleteWatchlistError, Errors::CannotSetDefaultAccountError, Errors::ClientSuspendedError, Errors::ClientTokenInvalidError, Errors::ClientTokenMissingError, Errors::ConnectionError, Errors::DealNotFoundError, Errors::DuplicateWatchlistNameError, Errors::EPICNotFoundError, Errors::EncryptionRequiredError, Errors::ExceededAPIKeyAllowanceError, Errors::ExceededAccountAllowanceError, Errors::ExceededAccountHistoricalDataAllowanceError, Errors::ExceededAccountTradingAllowanceError, Errors::GetSessionTimeoutError, Errors::InstrumentNotFoundError, Errors::InvalidAPIKeyForClientError, Errors::InvalidAccountIDError, Errors::InvalidApplicationError, Errors::InvalidClientAccountError, Errors::InvalidCredentialsError, Errors::InvalidDateRangeError, Errors::InvalidInputError, Errors::InvalidJSONError, Errors::InvalidPageSizeError, Errors::InvalidShareOrderInstrumentDataError, Errors::InvalidURLError, Errors::InvalidWatchlistError, Errors::InvalidWebsiteError, Errors::KYCRequiredForAccountError, Errors::MalformedDateError, Errors::MarketOrdersNotSupported, Errors::MissingCredentialsError, Errors::OAuthTokenInvalidError, Errors::PendingAgreementsError, Errors::PositionError, Errors::PositionNotFoundError, Errors::PreferredAccountDisabledError, Errors::PreferredAccountNotSetError, Errors::SecurityError, Errors::SprintMarketClosedError, Errors::SprintMarketInvalidOrderSizeError, Errors::SprintMarketPositionCreateError, Errors::SprintMarketPositionInvalidExpiryError, Errors::StockbrokingNotSupportedError, Errors::SystemError, Errors::TooManyEPICSError, Errors::TooManyFailedLoginAttemptsError, Errors::TooManyMarketsError, Errors::UnauthorisedAccessToEquityError, Errors::UnsupportedEPICError, Errors::WatchlistError, Errors::WatchlistInvalidEPICError, Errors::WatchlistNotFoundError

Class Method Summary collapse

Class Method Details

.build(error_code) ⇒ IGMarketsError

Takes an IG Markets error code and returns an instance of the relevant error class that should be raised in response to the error.

Parameters:

  • error_code (String)

    The error code.

Returns:



300
301
302
303
304
305
306
307
308
309
310
311
312
313
# File 'lib/ig_markets/errors.rb', line 300

def self.build(error_code)
  if API_ERROR_CODE_TO_CLASS.key? error_code
    API_ERROR_CODE_TO_CLASS[error_code].new ''
  else
    @reported_unrecognized_error_codes ||= []

    unless @reported_unrecognized_error_codes.include? error_code
      @reported_unrecognized_error_codes << error_code
      warn "ig_markets: unrecognized error code #{error_code}"
    end

    new error_code
  end
end