Source code for worldline.acquiring.sdk.authentication.oauth2_scopes
# -*- coding: utf-8 -*-
#
# This file was automatically generated.
#
from typing import Callable, Set
[docs]
class OAuth2Scopes(object):
__scopes_by_operation = {
"v1": {
"processPayment": ["processing_payment"],
"getPaymentStatus": ["processing_payment"],
"simpleCaptureOfPayment": ["processing_payment"],
"reverseAuthorization": ["processing_payment"],
"incrementPayment": ["processing_payment"],
"createRefund": ["processing_refund"],
"processStandaloneRefund": ["processing_refund"],
"getRefund": ["processing_refund"],
"captureRefund": ["processing_refund"],
"reverseRefundAuthorization": ["processing_refund"],
"processAccountVerification": ["processing_accountverification"],
"processBalanceInquiry": ["processing_balanceinquiry"],
"technicalReversal": ["processing_operation_reverse"],
"requestDccRate": ["processing_dcc_rate"],
"ping": ["services_ping"]
}
}
__all_scopes = None
[docs]
@staticmethod
def all() -> Set[str]:
"""
Returns all available scopes.
"""
if not OAuth2Scopes.__all_scopes:
result = []
for operations in OAuth2Scopes.__scopes_by_operation.values():
for scopes in operations.values():
result += scopes
OAuth2Scopes.__all_scopes = set(result)
return set(OAuth2Scopes.__all_scopes)
[docs]
@staticmethod
def for_api_version(api_version: str) -> Set[str]:
"""
Returns all scopes needed for all operations of the given API version.
"""
operations = OAuth2Scopes.__scopes_by_operation.get(api_version, {})
result = []
for scopes in operations.values():
result += scopes
return set(result)
[docs]
@staticmethod
def for_operation(api_version: str, operation_id: str) -> Set[str]:
"""
Returns all scopes needed for the given operation of the given API version.
"""
operations = OAuth2Scopes.__scopes_by_operation.get(api_version, {})
return set(operations.get(operation_id, []))
[docs]
@staticmethod
def for_operations(api_version: str, *operation_ids: str) -> Set[str]:
"""
Returns all scopes needed for the given operations of the given API version.
"""
operations = OAuth2Scopes.__scopes_by_operation.get(api_version, {})
result = []
for operation_id in operation_ids:
result += operations.get(operation_id, [])
return set(result)
[docs]
@staticmethod
def for_filtered_operations(operation_filter: Callable[[str, str], bool]) -> Set[str]:
"""
Returns all scopes needed for the operations that pass the given filter.
The first argument to the filter is the API version, the second is the operation id.
"""
result = []
for api_version, operations in OAuth2Scopes.__scopes_by_operation.items():
for operation_id, scopes in operations.items():
if operation_filter(api_version, operation_id):
result += scopes
return set(result)