Ejemplo n.º 1
0
def test_get_call_get_method(default_params):
    api_key, base_url, section, http_client, url, custom_headers = default_params
    responses.add_callback(method="GET", url=url, callback=substitute_callback)

    _APIRequestor.get(
        section,
        api_key=api_key,
        base_url=base_url,
        http_client=http_client,
    )
Ejemplo n.º 2
0
    def get(
        *,
        id,
        for_user_id=None,
        x_api_version=None,
        **kwargs,
    ):
        """Get payout (API Reference: Payout/Get Payout)

        Args:
          - id (str)
          - **for_user_id (str) (XenPlatform only)
          - **x_api_version (str)

        Returns
          Payout

        Raises
          XenditError

        """
        url = f"/payouts/{id}"
        headers, _ = _extract_params(
            locals(),
            func_object=Payout.get,
            headers_params=["for_user_id", "x_api_version"],
            ignore_params=["id"],
        )
        kwargs["headers"] = headers

        resp = _APIRequestor.get(url, **kwargs)
        if resp.status_code >= 200 and resp.status_code < 300:
            return Payout(**resp.body)
        else:
            raise XenditError(resp)
Ejemplo n.º 3
0
    def get_fixed_payment_code(*,
                               fixed_payment_code_id,
                               for_user_id=None,
                               x_api_version=None,
                               **kwargs):
        """Get the detail of given Fixed Payment Code (API Reference: Retail Outlets/Get Fixed Payment Code)

        Args:
          - fixed_payment_code_id (str)
          - **for_user_id (str) (XenPlatforms only)
          - **x_api_version (str): API Version that will be used. If not provided will default to the latest

        Returns:
          RetailOutlet

        Raises:
          XenditError

        """
        url = f"/fixed_payment_code/{fixed_payment_code_id}"
        headers, _ = _extract_params(
            locals(),
            func_object=RetailOutlet.update_fixed_payment_code,
            headers_params=["for_user_id", "x_api_version"],
        )
        kwargs["headers"] = headers

        resp = _APIRequestor.get(url, **kwargs)
        if resp.status_code >= 200 and resp.status_code < 300:
            return RetailOutlet(**resp.body)
        else:
            raise XenditError(resp)
Ejemplo n.º 4
0
    def get_by_ext_id(*, external_id, for_user_id=None, x_api_version=None, **kwargs):
        """Get Disbursement detail by external ID (API Reference: Disbursement/Get Disbursement by External ID)

        Args:
          - external_id (str)
          - **for_user_id (str)
          - **x_api_version (str): API Version that will be used. If not provided will default to the latest

        Returns:
          Disbursement

        Raises:
          XenditError

        """
        url = f"/disbursements?external_id={external_id}"
        headers, _ = _extract_params(
            locals(),
            func_object=Disbursement.get_by_ext_id,
            headers_params=["for_user_id", "x_api_version"],
            ignore_params=["external_id"],
        )
        kwargs["headers"] = headers

        resp = _APIRequestor.get(url, **kwargs)
        if resp.status_code >= 200 and resp.status_code < 300:
            disbursements = []
            for disbursement in resp.body:
                disbursements.append(Disbursement(**disbursement))
            return disbursements
        else:
            raise XenditError(resp)
Ejemplo n.º 5
0
    def get_available_banks(*, for_user_id=None, x_api_version=None, **kwargs):
        """Get Available Banks (API Reference: Disbursement/Get Available Banks)

        Args:
          - **for_user_id (str)
          - **x_api_version (str): API Version that will be used. If not provided will default to the latest

        Returns:
          List of DisbursementBank

        Raises:
          XenditError

        """
        url = "/available_disbursements_banks"
        headers, _ = _extract_params(
            locals(),
            func_object=Disbursement.get_available_banks,
            headers_params=["for_user_id", "x_api_version"],
        )
        kwargs["headers"] = headers

        resp = _APIRequestor.get(url, **kwargs)
        if resp.status_code >= 200 and resp.status_code < 300:
            disbursement_banks = []
            for bank in resp.body:
                disbursement_banks.append(DisbursementBank(**bank))
            return disbursement_banks
        else:
            raise XenditError(resp)
Ejemplo n.º 6
0
    def get_by_ext_id(
        *,
        external_id,
        for_user_id=None,
        x_idempotency_key=None,
        x_api_version=None,
        **kwargs,
    ):
        """Get QR Codes by external_id (API Reference: QR Code/Get QR Code by External ID)

        Args:
          - external_id (str)
          - **for_user_id (str) (XenPlatforms only)
          - **x_api_version (str): API Version that will be used. If not provided will default to the latest

        Returns:
          QRCode

        Raises:
          XenditError

        """
        url = f"/qr_codes/{external_id}"
        headers, _ = _extract_params(
            locals(),
            func_object=QRCode.get_by_ext_id,
            headers_params=["for_user_id", "x_api_version"],
        )
        kwargs["headers"] = headers

        resp = _APIRequestor.get(url, **kwargs)
        if resp.status_code >= 200 and resp.status_code < 300:
            return QRCode(**resp.body)
        else:
            raise XenditError(resp)
Ejemplo n.º 7
0
    def get_charge(
        *, credit_card_charge_id, for_user_id=None, x_api_version=None, **kwargs,
    ):
        """Get Detail of Credit Card Charge (API Reference: Credit Card/Get Charge)

        Args:
          - credit_card_charge_id (str)
          - **for_user_id (str)
          - **x_api_version (str)

        Returns:
          CreditCardCharge

        Raises:
          XenditError

        """
        url = f"/credit_card_charges/{credit_card_charge_id}"
        headers, _ = _extract_params(
            locals(),
            func_object=CreditCard.get_charge,
            headers_params=["for_user_id", "x_idempotency_key", "x_api_version"],
            ignore_params=["credit_card_charge_id"],
        )
        kwargs["headers"] = headers

        resp = _APIRequestor.get(url, **kwargs)
        if resp.status_code >= 200 and resp.status_code < 300:
            return CreditCardCharge(**resp.body)
        else:
            raise XenditError(resp)
Ejemplo n.º 8
0
    def get_payment(*,
                    payment_id,
                    for_user_id=None,
                    x_api_version=None,
                    **kwargs):
        """Get payment from virtual account (API Reference: Virtual Account/Get Virtual Account Payment

        Args:
          - payment_id (str)

        Returns:
          VirtualAccountPayment

        Raises:
          XenditError
        """
        url = f"/callback_virtual_account_payments/payment_id={payment_id}"
        headers, _ = _extract_params(
            locals(),
            func_object=VirtualAccount.get_payment,
            headers_params=["for_user_id", "x_api_version"],
            ignore_params=["payment_id"],
        )
        kwargs["headers"] = headers

        resp = _APIRequestor.get(url, **kwargs)
        if resp.status_code >= 200 and resp.status_code < 300:
            return VirtualAccountPayment(**resp.body)
        else:
            raise XenditError(resp)
Ejemplo n.º 9
0
    def get(*, id, for_user_id=None, x_api_version=None, **kwargs):
        """Get the detail of Virtual Account (API Reference: Virtual Account/Get Virtual Account

        Args:
          - id (str)
          - **for_user_id (str) (XenPlatforms only)
          - **x_api_version (str): API Version that will be used. If not provided will default to the latest

        Returns:
          VirtualAccount

        Raises:
          XenditError
        """
        url = f"/callback_virtual_accounts/{id}"
        headers, _ = _extract_params(
            locals(),
            func_object=VirtualAccount.get,
            headers_params=["for_user_id", "x_api_version"],
            ignore_params=["id"],
        )
        kwargs["headers"] = headers

        resp = _APIRequestor.get(url, **kwargs)
        if resp.status_code >= 200 and resp.status_code < 300:
            return VirtualAccount(**resp.body)
        else:
            raise XenditError(resp)
Ejemplo n.º 10
0
    def get(
        *,
        account_type=BalanceAccountType.CASH,
        for_user_id=None,
        x_api_version=None,
        **kwargs,
    ):
        """Send GET request to retrieve balance (API Reference: Balance/Get Balance)

        Args:
          - account_type (BalanceAccountType)
          - **for_user_id (str) (XenPlatform only)
          - **x_api_version (str): API Version that will be used. If not provided will default to the latest

        Returns
          Balance

        Raises
          XenditError
        """
        headers, _ = _extract_params(
            locals(),
            func_object=Balance.get,
            headers_params=["for_user_id", "x_api_version"],
        )
        kwargs["headers"] = headers
        account_type = Balance._parse_value(account_type)
        url = f"/balance?account_type={account_type}"

        resp = _APIRequestor.get(url, **kwargs)
        if resp.status_code >= 200 and resp.status_code < 300:
            return Balance(**resp.body)
        else:
            raise XenditError(resp)
Ejemplo n.º 11
0
    def get_banks(*, for_user_id=None, x_api_version=None, **kwargs):
        """Get available banks (API Reference: Virtual Account/Get Virtual Account Banks)

        Args:
          - **for_user_id (str) (XenPlatforms only)
          - **x_api_version (str): API Version that will be used. If not provided will default to the latest

        Returns:
          List of VirtualAccountBank

        Raises:
          XenditError

        """
        url = "/available_virtual_account_banks"
        headers, _ = _extract_params(
            locals(),
            func_object=VirtualAccount.get_banks,
            headers_params=["for_user_id", "x_api_version"],
            ignore_params=["id"],
        )
        kwargs["headers"] = headers

        resp = _APIRequestor.get(url, **kwargs)
        if resp.status_code >= 200 and resp.status_code < 300:
            virtual_account_banks = []
            for bank in resp.body:
                virtual_account_banks.append(VirtualAccountBank(**bank))
            return virtual_account_banks
        else:
            raise XenditError(resp)
Ejemplo n.º 12
0
    def get(
        *, invoice_id, for_user_id=None, x_api_version=None, **kwargs,
    ):
        """Get Invoice (API Reference: Invoice/Get Invoice)

        Args:
          - invoice_id (str)
          - **for_user_id (str)
          - **x_api_version (str): API Version that will be used. If not provided will default to the latest

        Returns:
          Invoice

        Raises:
          XenditError

        """
        url = f"/v2/invoices/{invoice_id}"
        headers, _ = _extract_params(
            locals(),
            func_object=Invoice.get,
            headers_params=["for_user_id", "x_api_version"],
            ignore_params=["invoice_id"],
        )
        kwargs["headers"] = headers

        resp = _APIRequestor.get(url, **kwargs)
        if resp.status_code >= 200 and resp.status_code < 300:
            return Invoice(**resp.body)
        else:
            raise XenditError(resp)
Ejemplo n.º 13
0
    def get_ewallet_charge_status(
        *,
        charge_id: str,
        for_user_id: str = None,
        **kwargs,
    ):
        """Get ewallet charge status of given charge id (API Reference: eWallets/Get E-Wallet Charge Status)

        Args:
          - charge_id (str)
          - **for_user_id (str) (XenPlatforms only)

        Returns:
          - EWalletCharge

        Raises:
          XenditError

        """
        url = f"/ewallets/charges/{charge_id}"
        headers, body = _extract_params(
            locals(),
            func_object=EWallet.get_ewallet_charge_status,
            headers_params=["for_user_id"],
        )
        kwargs["headers"] = headers

        resp = _APIRequestor.get(url, **kwargs)
        if resp.status_code >= 200 and resp.status_code < 300:
            return EWalletCharge(**resp.body)
        else:
            raise XenditError(resp)
Ejemplo n.º 14
0
    def get(
        *, id, for_user_id=None, x_api_version=None, **kwargs,
    ):
        """Get Recurring Payment by ID (API Reference: Recurring Payment/Get Recurring Payment)

        Args:
          - id (str)
          - **for_user_id (str)
          - **x_api_version (str)

        Returns:
          RecurringPayment

        Raises:
          XenditError

        """
        url = f"/recurring_payments/{id}"
        headers, _ = _extract_params(
            locals(),
            func_object=RecurringPayment.get,
            headers_params=["for_user_id", "x_api_version"],
        )
        kwargs["headers"] = headers

        resp = _APIRequestor.get(url, **kwargs)
        if resp.status_code >= 200 and resp.status_code < 300:
            return RecurringPayment(**resp.body)
        else:
            raise XenditError(resp)
Ejemplo n.º 15
0
    def get_payment_status(*,
                           external_id,
                           ewallet_type,
                           for_user_id=None,
                           x_api_version=None,
                           **kwargs):
        """Get payment status of given external id (API Reference: eWallets/Get Payment Status)

        Args:
          - external_id (str)
          - ewallet_type (EWalletType)
          - **for_user_id (str) (XenPlatforms only)
          - **x_api_version (str)

        Returns:
          - OVOPaymentStatus (For EWalletType.OVO)
          - DANAPaymentStatus (For EWalletType.DANA)
          - LinkAjaPaymentStatus (For EWalletType.LINKAJA)

        Raises:
          XenditError

        """
        parsed_ewallet_type = EWallet._parse_ewallet_type(ewallet_type)
        url = f"/ewallets?external_id={external_id}&ewallet_type={parsed_ewallet_type}"
        headers, _ = _extract_params(
            locals(),
            func_object=EWallet.create_linkaja_payment,
            headers_params=["for_user_id", "x_api_version"],
        )
        kwargs["headers"] = headers

        resp = _APIRequestor.get(url, **kwargs)
        if resp.status_code >= 200 and resp.status_code < 300:
            if ewallet_type == EWalletType.OVO:
                return OVOPaymentStatus(**resp.body)
            elif ewallet_type == EWalletType.DANA:
                return DANAPaymentStatus(**resp.body)
            elif ewallet_type == EWalletType.LINKAJA:
                return LinkAjaPaymentStatus(**resp.body)
        else:
            raise XenditError(resp)
Ejemplo n.º 16
0
    def get_accessible_accounts_by_token(
        *,
        linked_account_token_id,
        for_user_id=None,
        x_api_version=None,
        **kwargs,
    ):
        """Get list of bank accounts accessible by the linked account token
        (API Reference: Direct Debit/Retrieve Accessible Accounts by Linked Account Token)

        Args:
          - linked_account_token_id (str)
          - **for_user_id (str)
          - **x_api_version (str)

        Returns:
          DirectDebitAccessibleAccount[]

        Raises:
          XenditError

        """
        url = f"/linked_account_tokens/{linked_account_token_id}/accounts"
        headers, _ = _extract_params(
            locals(),
            func_object=DirectDebit.get_accessible_accounts_by_token,
            headers_params=["for_user_id", "x_api_version"],
            ignore_params=["linked_account_token_id"],
        )
        kwargs["headers"] = headers

        resp = _APIRequestor.get(url, **kwargs)
        if resp.status_code >= 200 and resp.status_code < 300:
            accessible_accounts = []
            for accessible_account in resp.body:
                accessible_accounts.append(
                    DirectDebitAccessibleAccount(**accessible_account))
            return accessible_accounts
        else:
            raise XenditError(resp)
Ejemplo n.º 17
0
    def get_payment_methods_by_customer_id(
        *,
        customer_id,
        for_user_id=None,
        x_api_version=None,
        **kwargs,
    ):
        """Get payment methods by Customer ID
        (API Reference: Direct Debit/Get Payment Methods by Customer ID)

        Args:
          - customer_id (str)
          - **for_user_id (str)
          - **x_api_version (str)

        Returns:
          DirectDebitPaymentMethod[]

        Raises:
          XenditError

        """
        url = f"/payment_methods?customer_id={customer_id}"
        headers, body = _extract_params(
            locals(),
            func_object=DirectDebit.get_payment_methods_by_customer_id,
            headers_params=["for_user_id", "x_api_version"],
            ignore_params=["customer_id"],
        )
        kwargs["headers"] = headers

        resp = _APIRequestor.get(url, **kwargs)
        if resp.status_code >= 200 and resp.status_code < 300:
            payment_methods = []
            for payment_method in resp.body:
                payment_methods.append(
                    DirectDebitPaymentMethod(**payment_method))
            return payment_methods
        else:
            raise XenditError(resp)
Ejemplo n.º 18
0
    def get_payment_status_by_ref_id(
        *,
        reference_id,
        for_user_id=None,
        x_api_version=None,
        **kwargs,
    ):
        """Get the details of a direct debit payment
        (API Reference: Direct Debit/Get Direct Debit Payment Status by Reference ID)

        Args:
          - reference_id (str)
          - **for_user_id (str)
          - **x_api_version (str)

        Returns:
          DirectDebitPayment[]

        Raises:
          XenditError

        """
        url = f"/direct_debits?reference_id={reference_id}"
        headers, _ = _extract_params(
            locals(),
            func_object=DirectDebit.get_payment_status,
            headers_params=["for_user_id", "x_api_version"],
            ignore_params=["reference_id"],
        )
        kwargs["headers"] = headers

        resp = _APIRequestor.get(url, **kwargs)
        if resp.status_code >= 200 and resp.status_code < 300:
            payments = []
            for payment in resp.body:
                payments.append(DirectDebitPayment(**payment))
            return payments
        else:
            raise XenditError(resp)
Ejemplo n.º 19
0
    def get_customer_by_ref_id(
        *,
        reference_id,
        for_user_id=None,
        x_api_version=None,
        **kwargs,
    ):
        """Get Customer by Reference ID (API Reference: Direct Debit/Get Customer by Reference ID)

        Args:
          - reference_id (str)
          - **for_user_id (str)
          - **x_api_version (str)

        Returns:
          DirectDebitCustomer

        Raises:
          XenditError

        """
        url = f"/customers?reference_id={reference_id}"
        headers, _ = _extract_params(
            locals(),
            func_object=DirectDebit.get_customer_by_ref_id,
            headers_params=["for_user_id", "x_api_version"],
            ignore_params=["reference_id"],
        )
        kwargs["headers"] = headers

        resp = _APIRequestor.get(url, **kwargs)
        if resp.status_code >= 200 and resp.status_code < 300:
            customers = []
            for customer in resp.body:
                customers.append(DirectDebitCustomer(**customer))
            return customers
        else:
            raise XenditError(resp)
Ejemplo n.º 20
0
    def get_payment_status(
        *,
        direct_debit_id,
        for_user_id=None,
        x_api_version=None,
        **kwargs,
    ):
        """Get the details of a direct debit payment
        (API Reference: Direct Debit/Get Direct Debit Payment Status by ID)

        Args:
          - direct_debit_id (str)
          - **for_user_id (str)
          - **x_api_version (str)

        Returns:
          DirectDebitPayment

        Raises:
          XenditError

        """
        url = f"/direct_debits/{direct_debit_id}/"
        headers, _ = _extract_params(
            locals(),
            func_object=DirectDebit.get_payment_status,
            headers_params=["for_user_id", "x_api_version"],
            ignore_params=["direct_debit_id"],
        )
        kwargs["headers"] = headers

        resp = _APIRequestor.get(url, **kwargs)
        if resp.status_code >= 200 and resp.status_code < 300:
            return DirectDebitPayment(**resp.body)
        else:
            raise XenditError(resp)
Ejemplo n.º 21
0
    def list_all(
        *,
        statuses=None,
        limit=None,
        created_after=None,
        created_before=None,
        paid_after=None,
        paid_before=None,
        expired_after=None,
        expired_before=None,
        last_invoice_id=None,
        client_types=None,
        payment_channels=None,
        on_demand_link=None,
        recurring_payment_id=None,
        for_user_id=None,
        x_api_version=None,
        **kwargs,
    ):
        """List all Invoice based on filter (API Reference: Invoice/List All Invoice)

        Args:
          - statuses (str[])
          - limit (int)
          - created_after (str)
          - created_before (str)
          - paid_after (str)
          - paid_before (str)
          - expired_after (str)
          - expired_before (str)
          - last_invoice_id (str)
          - client_types (str[])
          - payment_channels (str[])
          - on_demand_link (str)
          - recurring_payment_id (str)
          - **for_user_id (str)
          - **x_api_version (str): API Version that will be used. If not provided will default to the latest

        Returns:
          Invoice

        Raises:
          XenditError

        """
        url = "/v2/invoices"
        headers, params = _extract_params(
            locals(),
            func_object=Invoice.list_all,
            headers_params=["for_user_id", "x_api_version"],
            ignore_params=[],
        )
        kwargs["headers"] = headers
        kwargs["params"] = params

        resp = _APIRequestor.get(url, **kwargs)
        if resp.status_code >= 200 and resp.status_code < 300:
            invoices = []
            for invoice in resp.body:
                invoices.append(Invoice(**invoice))
            return invoices
        else:
            raise XenditError(resp)