Class: Adyen::Service

Inherits:
Object
  • Object
show all
Defined in:
lib/adyen/services/service.rb

Direct Known Subclasses

APICredentialsCompanyLevelApi, APICredentialsMerchantLevelApi, APIKeyCompanyLevelApi, APIKeyMerchantLevelApi, AccountCompanyLevelApi, AccountHoldersApi, AccountMerchantLevelApi, AccountStoreLevelApi, AccountVerificationApi, AllowedOriginsCompanyLevelApi, AllowedOriginsMerchantLevelApi, AndroidFilesCompanyLevelApi, AuthorizedCardUsersApi, BalanceAccountsApi, BalanceControlApi, BalancesApi, BankAccountValidationApi, BinLookupApi, BusinessLinesApi, CapitalApi, CardOrdersApi, CashOutApi, ClassicModificationsApi, ClassicPaymentsApi, ClientKeyCompanyLevelApi, ClientKeyMerchantLevelApi, CustomPayoutSchedulesSweepsApi, DataProtectionApi, DirectDebitMandatesApi, DisputesApi, DocumentsApi, DonationCampaignsApi, DonationsApi, DynamicOffersApi, GrantAccountsApi, GrantOffersApi, GrantsApi, HostedOnboardingApi, InitializationApi, InstantPayoutsApi, LegacyRecurringApi, LegalEntitiesApi, ManageCardPINApi, ManageSCADevicesApi, ManagedPayoutSchedulesApi, Marketpay::Account, Marketpay::Fund, Marketpay::Hop, Marketpay::Notification, ModificationsApi, MyAPICredentialApi, NetworkTokensApi, OrdersApi, PCIQuestionnairesApi, PaymentInstrumentGroupsApi, PaymentInstrumentsApi, PaymentLinksApi, PaymentMethodsMerchantLevelApi, PaymentsApi, PaymentsAppApi, PayoutSettingsMerchantLevelApi, PlatformApi, PosMobileApi, PosTerminalManagement, RecurringApi, RecurringTopUpsApi, ReviewingApi, SCAAssociationManagementApi, SCADeviceManagementApi, SessionAuthenticationApi, SplitConfigurationMerchantLevelApi, StoredValueApi, TaxEDeliveryConsentApi, TerminalActionsCompanyLevelApi, TerminalActionsTerminalLevelApi, TerminalCloudAPI, TerminalOrdersCompanyLevelApi, TerminalOrdersMerchantLevelApi, TerminalSettingsCompanyLevelApi, TerminalSettingsMerchantLevelApi, TerminalSettingsStoreLevelApi, TerminalSettingsTerminalLevelApi, TerminalsTerminalLevelApi, TermsOfServiceApi, TransactionRulesApi, TransactionsApi, TransferInstrumentsApi, TransferLimitsBalanceAccountLevelApi, TransferLimitsBalancePlatformLevelApi, TransferRoutesApi, TransfersApi, UsersCompanyLevelApi, UsersMerchantLevelApi, UtilityApi, WebhooksCompanyLevelApi, WebhooksMerchantLevelApi

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(client, version, service, method_names = [], with_application_info = []) ⇒ Service

Returns a new instance of Service.



16
17
18
19
20
21
22
23
24
25
26
27
28
29
# File 'lib/adyen/services/service.rb', line 16

def initialize(client, version, service, method_names = [], with_application_info = [])
  @client = client
  @version = version
  @service = service

  # dynamically create API methods
  method_names.each do |method_name|
    define_singleton_method method_name do |request, headers = {}|
      action = self.class.action_for_method_name(method_name)
      @client.call_adyen_api(@service, action, request, headers, @version,
                             _with_application_info: with_application_info.include?(method_name))
    end
  end
end

Instance Attribute Details

#serviceObject

Returns the value of attribute service.



5
6
7
# File 'lib/adyen/services/service.rb', line 5

def service
  @service
end

#versionObject

Returns the value of attribute version.



5
6
7
# File 'lib/adyen/services/service.rb', line 5

def version
  @version
end

Class Method Details

.action_for_method_name(method_name) ⇒ Object

add snake case to camel case converter to String to convert rubinic method names to Adyen API methods

i.e. snake_case -> snakeCase note that the first letter is not capitalized as normal



12
13
14
# File 'lib/adyen/services/service.rb', line 12

def self.action_for_method_name(method_name)
  method_name.to_s.gsub(/_./) { |x| x[1].upcase }
end

Instance Method Details

#create_query_string(params) ⇒ Object

create query parameter from a hash



32
33
34
35
# File 'lib/adyen/services/service.rb', line 32

def create_query_string(params)
  return '' if params.empty?
  "?#{URI.encode_www_form(params)}"
end