paddle-python-sdk 0.1.0__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- examples/__init__.py +0 -0
- examples/catalog_management.py +166 -0
- examples/event_polling.py +56 -0
- examples/get_products.py +46 -0
- examples/logger.py +31 -0
- paddle_billing/Client.py +201 -0
- paddle_billing/ConditionallyRemoveImportMeta.py +14 -0
- paddle_billing/Entities/Address.py +44 -0
- paddle_billing/Entities/Adjustment.py +45 -0
- paddle_billing/Entities/Adjustments/AdjustmentCustomerBalance.py +18 -0
- paddle_billing/Entities/Adjustments/AdjustmentItem.py +26 -0
- paddle_billing/Entities/Adjustments/__init__.py +2 -0
- paddle_billing/Entities/Business.py +38 -0
- paddle_billing/Entities/Collections/AddressCollection.py +18 -0
- paddle_billing/Entities/Collections/AdjustmentCollection.py +18 -0
- paddle_billing/Entities/Collections/BusinessCollection.py +18 -0
- paddle_billing/Entities/Collections/Collection.py +47 -0
- paddle_billing/Entities/Collections/CreditBalanceCollection.py +18 -0
- paddle_billing/Entities/Collections/CustomerCollection.py +18 -0
- paddle_billing/Entities/Collections/DiscountCollection.py +18 -0
- paddle_billing/Entities/Collections/EventCollection.py +18 -0
- paddle_billing/Entities/Collections/EventTypeCollection.py +18 -0
- paddle_billing/Entities/Collections/NotificationCollection.py +18 -0
- paddle_billing/Entities/Collections/NotificationLogCollection.py +18 -0
- paddle_billing/Entities/Collections/NotificationSettingCollection.py +18 -0
- paddle_billing/Entities/Collections/Paginator.py +29 -0
- paddle_billing/Entities/Collections/PriceCollection.py +18 -0
- paddle_billing/Entities/Collections/ProductCollection.py +18 -0
- paddle_billing/Entities/Collections/ReportCollection.py +18 -0
- paddle_billing/Entities/Collections/SubscriptionCollection.py +18 -0
- paddle_billing/Entities/Collections/SubscriptionPreviewCollection.py +18 -0
- paddle_billing/Entities/Collections/TransactionCollection.py +18 -0
- paddle_billing/Entities/Collections/TransactionPreviewCollection.py +18 -0
- paddle_billing/Entities/Collections/TransactionsDataCollection.py +18 -0
- paddle_billing/Entities/Collections/__init__.py +21 -0
- paddle_billing/Entities/CreditBalance.py +22 -0
- paddle_billing/Entities/Customer.py +36 -0
- paddle_billing/Entities/DateTime.py +43 -0
- paddle_billing/Entities/Discount.py +51 -0
- paddle_billing/Entities/Discounts/DiscountStatus.py +8 -0
- paddle_billing/Entities/Discounts/DiscountType.py +7 -0
- paddle_billing/Entities/Discounts/__init__.py +2 -0
- paddle_billing/Entities/Entity.py +12 -0
- paddle_billing/Entities/Event.py +51 -0
- paddle_billing/Entities/EventType.py +23 -0
- paddle_billing/Entities/Events/EventTypeName.py +52 -0
- paddle_billing/Entities/Events/__init__.py +1 -0
- paddle_billing/Entities/Notification.py +42 -0
- paddle_billing/Entities/NotificationLog.py +25 -0
- paddle_billing/Entities/NotificationSetting.py +34 -0
- paddle_billing/Entities/NotificationSettings/NotificationSettingType.py +6 -0
- paddle_billing/Entities/NotificationSettings/__init__.py +1 -0
- paddle_billing/Entities/Notifications/NotificationOrigin.py +6 -0
- paddle_billing/Entities/Notifications/NotificationPayout.py +24 -0
- paddle_billing/Entities/Notifications/NotificationPayoutStatus.py +6 -0
- paddle_billing/Entities/Notifications/NotificationStatus.py +8 -0
- paddle_billing/Entities/Notifications/__init__.py +4 -0
- paddle_billing/Entities/Price.py +68 -0
- paddle_billing/Entities/PricePreview.py +34 -0
- paddle_billing/Entities/PricingPreviews/PricePreviewDetails.py +15 -0
- paddle_billing/Entities/PricingPreviews/PricePreviewDiscounts.py +20 -0
- paddle_billing/Entities/PricingPreviews/PricePreviewItem.py +16 -0
- paddle_billing/Entities/PricingPreviews/PricePreviewLineItem.py +38 -0
- paddle_billing/Entities/PricingPreviews/PricePreviewTotalsFormatted.py +20 -0
- paddle_billing/Entities/PricingPreviews/PricePreviewUnitTotalsFormatted.py +20 -0
- paddle_billing/Entities/PricingPreviews/__init__.py +6 -0
- paddle_billing/Entities/Product.py +45 -0
- paddle_billing/Entities/Report.py +32 -0
- paddle_billing/Entities/ReportCSV.py +13 -0
- paddle_billing/Entities/Reports/ReportFilter.py +20 -0
- paddle_billing/Entities/Reports/ReportFilterName.py +17 -0
- paddle_billing/Entities/Reports/ReportFilterOperator.py +6 -0
- paddle_billing/Entities/Reports/ReportStatus.py +8 -0
- paddle_billing/Entities/Reports/ReportType.py +10 -0
- paddle_billing/Entities/Reports/__init__.py +5 -0
- paddle_billing/Entities/Shared/Action.py +10 -0
- paddle_billing/Entities/Shared/AddressPreview.py +18 -0
- paddle_billing/Entities/Shared/AdjustmentItemTotals.py +18 -0
- paddle_billing/Entities/Shared/AdjustmentProration.py +18 -0
- paddle_billing/Entities/Shared/AdjustmentStatus.py +8 -0
- paddle_billing/Entities/Shared/AdjustmentTimePeriod.py +17 -0
- paddle_billing/Entities/Shared/AdjustmentTotals.py +26 -0
- paddle_billing/Entities/Shared/AdjustmentType.py +8 -0
- paddle_billing/Entities/Shared/AvailablePaymentMethods.py +11 -0
- paddle_billing/Entities/Shared/BillingDetails.py +22 -0
- paddle_billing/Entities/Shared/BillingDetailsUpdate.py +22 -0
- paddle_billing/Entities/Shared/Card.py +24 -0
- paddle_billing/Entities/Shared/CatalogType.py +6 -0
- paddle_billing/Entities/Shared/ChargebackFee.py +18 -0
- paddle_billing/Entities/Shared/Checkout.py +12 -0
- paddle_billing/Entities/Shared/CollectionMode.py +6 -0
- paddle_billing/Entities/Shared/Contacts.py +16 -0
- paddle_billing/Entities/Shared/CountryCode.py +233 -0
- paddle_billing/Entities/Shared/CurrencyCode.py +34 -0
- paddle_billing/Entities/Shared/CurrencyCodeAdjustments.py +7 -0
- paddle_billing/Entities/Shared/CurrencyCodePayouts.py +17 -0
- paddle_billing/Entities/Shared/CustomData.py +10 -0
- paddle_billing/Entities/Shared/Data.py +9 -0
- paddle_billing/Entities/Shared/ErrorCode.py +21 -0
- paddle_billing/Entities/Shared/ImportMeta.py +16 -0
- paddle_billing/Entities/Shared/Interval.py +8 -0
- paddle_billing/Entities/Shared/Meta.py +7 -0
- paddle_billing/Entities/Shared/MetaPaginated.py +18 -0
- paddle_billing/Entities/Shared/MethodDetails.py +19 -0
- paddle_billing/Entities/Shared/Money.py +28 -0
- paddle_billing/Entities/Shared/Original.py +18 -0
- paddle_billing/Entities/Shared/Pagination.py +20 -0
- paddle_billing/Entities/Shared/PaymentAttemptStatus.py +13 -0
- paddle_billing/Entities/Shared/PaymentMethodType.py +14 -0
- paddle_billing/Entities/Shared/PayoutTotalsAdjustment.py +29 -0
- paddle_billing/Entities/Shared/PriceQuantity.py +16 -0
- paddle_billing/Entities/Shared/Status.py +6 -0
- paddle_billing/Entities/Shared/TaxCategory.py +13 -0
- paddle_billing/Entities/Shared/TaxMode.py +7 -0
- paddle_billing/Entities/Shared/TaxRatesUsed.py +18 -0
- paddle_billing/Entities/Shared/TimePeriod.py +18 -0
- paddle_billing/Entities/Shared/Totals.py +20 -0
- paddle_billing/Entities/Shared/TransactionDetailsPreview.py +22 -0
- paddle_billing/Entities/Shared/TransactionLineItemPreview.py +28 -0
- paddle_billing/Entities/Shared/TransactionOrigin.py +10 -0
- paddle_billing/Entities/Shared/TransactionPaymentAttempt.py +35 -0
- paddle_billing/Entities/Shared/TransactionPayoutTotals.py +36 -0
- paddle_billing/Entities/Shared/TransactionPayoutTotalsAdjusted.py +29 -0
- paddle_billing/Entities/Shared/TransactionStatus.py +11 -0
- paddle_billing/Entities/Shared/TransactionTotals.py +36 -0
- paddle_billing/Entities/Shared/TransactionTotalsAdjusted.py +28 -0
- paddle_billing/Entities/Shared/UnitPriceOverride.py +19 -0
- paddle_billing/Entities/Shared/UnitTotals.py +20 -0
- paddle_billing/Entities/Shared/__init__.py +56 -0
- paddle_billing/Entities/Subscription.py +86 -0
- paddle_billing/Entities/SubscriptionPreview.py +79 -0
- paddle_billing/Entities/Subscriptions/SubscriptionAdjustmentItem.py +24 -0
- paddle_billing/Entities/Subscriptions/SubscriptionAdjustmentPreview.py +22 -0
- paddle_billing/Entities/Subscriptions/SubscriptionCharge.py +18 -0
- paddle_billing/Entities/Subscriptions/SubscriptionCredit.py +18 -0
- paddle_billing/Entities/Subscriptions/SubscriptionDetails.py +34 -0
- paddle_billing/Entities/Subscriptions/SubscriptionDiscount.py +19 -0
- paddle_billing/Entities/Subscriptions/SubscriptionEffectiveFrom.py +6 -0
- paddle_billing/Entities/Subscriptions/SubscriptionItem.py +35 -0
- paddle_billing/Entities/Subscriptions/SubscriptionItemStatus.py +7 -0
- paddle_billing/Entities/Subscriptions/SubscriptionItems.py +20 -0
- paddle_billing/Entities/Subscriptions/SubscriptionItemsWithPrice.py +19 -0
- paddle_billing/Entities/Subscriptions/SubscriptionManagementUrls.py +16 -0
- paddle_billing/Entities/Subscriptions/SubscriptionNextTransaction.py +23 -0
- paddle_billing/Entities/Subscriptions/SubscriptionNonCatalogPrice.py +30 -0
- paddle_billing/Entities/Subscriptions/SubscriptionNonCatalogPriceWithProduct.py +32 -0
- paddle_billing/Entities/Subscriptions/SubscriptionNonCatalogProduct.py +26 -0
- paddle_billing/Entities/Subscriptions/SubscriptionOnPaymentFailure.py +6 -0
- paddle_billing/Entities/Subscriptions/SubscriptionPreviewSubscriptionUpdateSummary.py +22 -0
- paddle_billing/Entities/Subscriptions/SubscriptionPrice.py +28 -0
- paddle_billing/Entities/Subscriptions/SubscriptionProration.py +18 -0
- paddle_billing/Entities/Subscriptions/SubscriptionProrationBillingMode.py +9 -0
- paddle_billing/Entities/Subscriptions/SubscriptionResult.py +22 -0
- paddle_billing/Entities/Subscriptions/SubscriptionResultAction.py +6 -0
- paddle_billing/Entities/Subscriptions/SubscriptionResumeEffectiveFrom.py +5 -0
- paddle_billing/Entities/Subscriptions/SubscriptionScheduledChange.py +21 -0
- paddle_billing/Entities/Subscriptions/SubscriptionScheduledChangeAction.py +7 -0
- paddle_billing/Entities/Subscriptions/SubscriptionStatus.py +10 -0
- paddle_billing/Entities/Subscriptions/SubscriptionTimePeriod.py +17 -0
- paddle_billing/Entities/Subscriptions/SubscriptionTransactionItem.py +23 -0
- paddle_billing/Entities/Subscriptions/SubscriptionTransactionLineItem.py +33 -0
- paddle_billing/Entities/Subscriptions/SubscriptionUpdateItem.py +16 -0
- paddle_billing/Entities/Subscriptions/__init__.py +31 -0
- paddle_billing/Entities/Transaction.py +98 -0
- paddle_billing/Entities/TransactionData.py +15 -0
- paddle_billing/Entities/TransactionPreview.py +40 -0
- paddle_billing/Entities/Transactions/TransactionAdjustmentsTotals.py +30 -0
- paddle_billing/Entities/Transactions/TransactionBreakdown.py +18 -0
- paddle_billing/Entities/Transactions/TransactionCardType.py +14 -0
- paddle_billing/Entities/Transactions/TransactionCreateItem.py +16 -0
- paddle_billing/Entities/Transactions/TransactionCreateItemWithPrice.py +11 -0
- paddle_billing/Entities/Transactions/TransactionDetails.py +32 -0
- paddle_billing/Entities/Transactions/TransactionItem.py +24 -0
- paddle_billing/Entities/Transactions/TransactionItemPreviewWithNonCatalogPrice.py +21 -0
- paddle_billing/Entities/Transactions/TransactionItemPreviewWithPrice.py +24 -0
- paddle_billing/Entities/Transactions/TransactionItemPreviewWithPriceId.py +18 -0
- paddle_billing/Entities/Transactions/TransactionLineItem.py +35 -0
- paddle_billing/Entities/Transactions/TransactionNonCatalogPrice.py +39 -0
- paddle_billing/Entities/Transactions/TransactionNonCatalogPriceWithProduct.py +41 -0
- paddle_billing/Entities/Transactions/TransactionNonCatalogProduct.py +25 -0
- paddle_billing/Entities/Transactions/TransactionProration.py +18 -0
- paddle_billing/Entities/Transactions/TransactionTimePeriod.py +17 -0
- paddle_billing/Entities/Transactions/TransactionUpdateTransactionItem.py +8 -0
- paddle_billing/Entities/Transactions/__init__.py +20 -0
- paddle_billing/Entities/__init__.py +0 -0
- paddle_billing/EnumStringify.py +2 -0
- paddle_billing/Environment.py +14 -0
- paddle_billing/Exceptions/ApiError.py +28 -0
- paddle_billing/Exceptions/ApiErrors/AddressApiError.py +5 -0
- paddle_billing/Exceptions/ApiErrors/AdjustmentApiError.py +5 -0
- paddle_billing/Exceptions/ApiErrors/BusinessApiError.py +5 -0
- paddle_billing/Exceptions/ApiErrors/CustomerApiError.py +5 -0
- paddle_billing/Exceptions/ApiErrors/DiscountApiError.py +5 -0
- paddle_billing/Exceptions/ApiErrors/PriceApiError.py +5 -0
- paddle_billing/Exceptions/ApiErrors/ProductApiError.py +5 -0
- paddle_billing/Exceptions/ApiErrors/SubscriptionApiError.py +5 -0
- paddle_billing/Exceptions/ApiErrors/TransactionApiError.py +5 -0
- paddle_billing/Exceptions/ApiErrors/__init__.py +0 -0
- paddle_billing/Exceptions/FieldError.py +8 -0
- paddle_billing/Exceptions/SdkException.py +2 -0
- paddle_billing/Exceptions/SdkExceptions/InvalidArgumentException.py +8 -0
- paddle_billing/Exceptions/SdkExceptions/MalformedResponse.py +7 -0
- paddle_billing/Exceptions/SdkExceptions/__init__.py +0 -0
- paddle_billing/Exceptions/__init__.py +0 -0
- paddle_billing/FiltersNone.py +8 -0
- paddle_billing/FiltersUndefined.py +11 -0
- paddle_billing/HasParameters.py +11 -0
- paddle_billing/Logger/Formatter.py +18 -0
- paddle_billing/Logger/NullHandler.py +6 -0
- paddle_billing/Logger/__init__.py +30 -0
- paddle_billing/Notifications/Entities/Address.py +44 -0
- paddle_billing/Notifications/Entities/Adjustment.py +45 -0
- paddle_billing/Notifications/Entities/Adjustments/AdjustmentItem.py +26 -0
- paddle_billing/Notifications/Entities/Adjustments/__init__.py +1 -0
- paddle_billing/Notifications/Entities/Business.py +39 -0
- paddle_billing/Notifications/Entities/Businesses/BusinessesContacts.py +16 -0
- paddle_billing/Notifications/Entities/Businesses/__init__.py +1 -0
- paddle_billing/Notifications/Entities/Customer.py +36 -0
- paddle_billing/Notifications/Entities/DateTime.py +43 -0
- paddle_billing/Notifications/Entities/Discount.py +51 -0
- paddle_billing/Notifications/Entities/Discounts/DiscountStatus.py +8 -0
- paddle_billing/Notifications/Entities/Discounts/DiscountType.py +7 -0
- paddle_billing/Notifications/Entities/Discounts/__init__.py +2 -0
- paddle_billing/Notifications/Entities/Entity.py +12 -0
- paddle_billing/Notifications/Entities/Payout.py +24 -0
- paddle_billing/Notifications/Entities/Payouts/PayoutStatus.py +6 -0
- paddle_billing/Notifications/Entities/Payouts/__init__.py +1 -0
- paddle_billing/Notifications/Entities/Price.py +66 -0
- paddle_billing/Notifications/Entities/Product.py +45 -0
- paddle_billing/Notifications/Entities/Report.py +32 -0
- paddle_billing/Notifications/Entities/Reports/ReportFilter.py +20 -0
- paddle_billing/Notifications/Entities/Reports/ReportFilterName.py +17 -0
- paddle_billing/Notifications/Entities/Reports/ReportFilterOperator.py +6 -0
- paddle_billing/Notifications/Entities/Reports/ReportStatus.py +8 -0
- paddle_billing/Notifications/Entities/Reports/ReportType.py +10 -0
- paddle_billing/Notifications/Entities/Reports/__init__.py +5 -0
- paddle_billing/Notifications/Entities/Shared/Action.py +10 -0
- paddle_billing/Notifications/Entities/Shared/AddressPreview.py +18 -0
- paddle_billing/Notifications/Entities/Shared/AdjustmentItemTotals.py +18 -0
- paddle_billing/Notifications/Entities/Shared/AdjustmentProration.py +18 -0
- paddle_billing/Notifications/Entities/Shared/AdjustmentStatus.py +8 -0
- paddle_billing/Notifications/Entities/Shared/AdjustmentTimePeriod.py +17 -0
- paddle_billing/Notifications/Entities/Shared/AdjustmentTotals.py +26 -0
- paddle_billing/Notifications/Entities/Shared/AdjustmentType.py +8 -0
- paddle_billing/Notifications/Entities/Shared/AvailablePaymentMethods.py +11 -0
- paddle_billing/Notifications/Entities/Shared/BillingDetails.py +22 -0
- paddle_billing/Notifications/Entities/Shared/Card.py +24 -0
- paddle_billing/Notifications/Entities/Shared/CatalogType.py +6 -0
- paddle_billing/Notifications/Entities/Shared/ChargebackFee.py +18 -0
- paddle_billing/Notifications/Entities/Shared/Checkout.py +12 -0
- paddle_billing/Notifications/Entities/Shared/CollectionMode.py +6 -0
- paddle_billing/Notifications/Entities/Shared/CountryCode.py +233 -0
- paddle_billing/Notifications/Entities/Shared/CurrencyCode.py +34 -0
- paddle_billing/Notifications/Entities/Shared/CurrencyCodeAdjustments.py +7 -0
- paddle_billing/Notifications/Entities/Shared/CurrencyCodePayouts.py +17 -0
- paddle_billing/Notifications/Entities/Shared/CustomData.py +10 -0
- paddle_billing/Notifications/Entities/Shared/Data.py +9 -0
- paddle_billing/Notifications/Entities/Shared/ErrorCode.py +21 -0
- paddle_billing/Notifications/Entities/Shared/ImportMeta.py +16 -0
- paddle_billing/Notifications/Entities/Shared/Interval.py +8 -0
- paddle_billing/Notifications/Entities/Shared/MethodDetails.py +19 -0
- paddle_billing/Notifications/Entities/Shared/Money.py +28 -0
- paddle_billing/Notifications/Entities/Shared/Original.py +18 -0
- paddle_billing/Notifications/Entities/Shared/PaymentAttemptStatus.py +13 -0
- paddle_billing/Notifications/Entities/Shared/PaymentMethodType.py +15 -0
- paddle_billing/Notifications/Entities/Shared/PayoutTotalsAdjustment.py +29 -0
- paddle_billing/Notifications/Entities/Shared/PriceQuantity.py +16 -0
- paddle_billing/Notifications/Entities/Shared/Status.py +6 -0
- paddle_billing/Notifications/Entities/Shared/TaxCategory.py +13 -0
- paddle_billing/Notifications/Entities/Shared/TaxMode.py +7 -0
- paddle_billing/Notifications/Entities/Shared/TaxRatesUsed.py +18 -0
- paddle_billing/Notifications/Entities/Shared/TimePeriod.py +18 -0
- paddle_billing/Notifications/Entities/Shared/Totals.py +20 -0
- paddle_billing/Notifications/Entities/Shared/TransactionOrigin.py +10 -0
- paddle_billing/Notifications/Entities/Shared/TransactionPaymentAttempt.py +35 -0
- paddle_billing/Notifications/Entities/Shared/TransactionPayoutTotals.py +36 -0
- paddle_billing/Notifications/Entities/Shared/TransactionPayoutTotalsAdjusted.py +29 -0
- paddle_billing/Notifications/Entities/Shared/TransactionStatus.py +11 -0
- paddle_billing/Notifications/Entities/Shared/TransactionTotals.py +36 -0
- paddle_billing/Notifications/Entities/Shared/TransactionTotalsAdjusted.py +28 -0
- paddle_billing/Notifications/Entities/Shared/UnitPriceOverride.py +19 -0
- paddle_billing/Notifications/Entities/Shared/UnitTotals.py +20 -0
- paddle_billing/Notifications/Entities/Shared/__init__.py +46 -0
- paddle_billing/Notifications/Entities/Subscription.py +76 -0
- paddle_billing/Notifications/Entities/Subscriptions/SubscriptionAdjustmentItem.py +24 -0
- paddle_billing/Notifications/Entities/Subscriptions/SubscriptionCharge.py +18 -0
- paddle_billing/Notifications/Entities/Subscriptions/SubscriptionCredit.py +18 -0
- paddle_billing/Notifications/Entities/Subscriptions/SubscriptionDiscount.py +19 -0
- paddle_billing/Notifications/Entities/Subscriptions/SubscriptionEffectiveFrom.py +6 -0
- paddle_billing/Notifications/Entities/Subscriptions/SubscriptionItem.py +35 -0
- paddle_billing/Notifications/Entities/Subscriptions/SubscriptionItemStatus.py +7 -0
- paddle_billing/Notifications/Entities/Subscriptions/SubscriptionOnPaymentFailure.py +6 -0
- paddle_billing/Notifications/Entities/Subscriptions/SubscriptionPrice.py +28 -0
- paddle_billing/Notifications/Entities/Subscriptions/SubscriptionScheduledChange.py +21 -0
- paddle_billing/Notifications/Entities/Subscriptions/SubscriptionScheduledChangeAction.py +7 -0
- paddle_billing/Notifications/Entities/Subscriptions/SubscriptionStatus.py +10 -0
- paddle_billing/Notifications/Entities/Subscriptions/SubscriptionTimePeriod.py +17 -0
- paddle_billing/Notifications/Entities/Subscriptions/__init__.py +13 -0
- paddle_billing/Notifications/Entities/Transaction.py +75 -0
- paddle_billing/Notifications/Entities/Transactions/TransactionAdjustmentsTotals.py +30 -0
- paddle_billing/Notifications/Entities/Transactions/TransactionBreakdown.py +18 -0
- paddle_billing/Notifications/Entities/Transactions/TransactionCardType.py +14 -0
- paddle_billing/Notifications/Entities/Transactions/TransactionDetails.py +32 -0
- paddle_billing/Notifications/Entities/Transactions/TransactionItem.py +24 -0
- paddle_billing/Notifications/Entities/Transactions/TransactionLineItem.py +35 -0
- paddle_billing/Notifications/Entities/Transactions/TransactionProration.py +18 -0
- paddle_billing/Notifications/Entities/Transactions/TransactionTimePeriod.py +17 -0
- paddle_billing/Notifications/Entities/Transactions/__init__.py +11 -0
- paddle_billing/Notifications/Entities/__init__.py +0 -0
- paddle_billing/Notifications/Events/AddressCreated.py +17 -0
- paddle_billing/Notifications/Events/AddressUpdated.py +17 -0
- paddle_billing/Notifications/Events/AdjustmentCreated.py +17 -0
- paddle_billing/Notifications/Events/AdjustmentUpdated.py +17 -0
- paddle_billing/Notifications/Events/BusinessCreated.py +17 -0
- paddle_billing/Notifications/Events/BusinessUpdated.py +17 -0
- paddle_billing/Notifications/Events/CustomerCreated.py +17 -0
- paddle_billing/Notifications/Events/CustomerUpdated.py +17 -0
- paddle_billing/Notifications/Events/DiscountCreated.py +17 -0
- paddle_billing/Notifications/Events/DiscountImported.py +17 -0
- paddle_billing/Notifications/Events/DiscountUpdated.py +17 -0
- paddle_billing/Notifications/Events/PayoutCreated.py +17 -0
- paddle_billing/Notifications/Events/PayoutPaid.py +17 -0
- paddle_billing/Notifications/Events/PriceCreated.py +17 -0
- paddle_billing/Notifications/Events/PriceUpdated.py +17 -0
- paddle_billing/Notifications/Events/ProductCreated.py +17 -0
- paddle_billing/Notifications/Events/ProductUpdated.py +17 -0
- paddle_billing/Notifications/Events/ReportCreated.py +17 -0
- paddle_billing/Notifications/Events/ReportUpdated.py +17 -0
- paddle_billing/Notifications/Events/SubscriptionActivated.py +17 -0
- paddle_billing/Notifications/Events/SubscriptionCanceled.py +17 -0
- paddle_billing/Notifications/Events/SubscriptionCreated.py +17 -0
- paddle_billing/Notifications/Events/SubscriptionImported.py +17 -0
- paddle_billing/Notifications/Events/SubscriptionPastDue.py +17 -0
- paddle_billing/Notifications/Events/SubscriptionPaused.py +17 -0
- paddle_billing/Notifications/Events/SubscriptionResumed.py +17 -0
- paddle_billing/Notifications/Events/SubscriptionTrialing.py +17 -0
- paddle_billing/Notifications/Events/SubscriptionUpdated.py +17 -0
- paddle_billing/Notifications/Events/TransactionBilled.py +17 -0
- paddle_billing/Notifications/Events/TransactionCanceled.py +17 -0
- paddle_billing/Notifications/Events/TransactionCompleted.py +16 -0
- paddle_billing/Notifications/Events/TransactionCreated.py +17 -0
- paddle_billing/Notifications/Events/TransactionPaid.py +17 -0
- paddle_billing/Notifications/Events/TransactionPastDue.py +17 -0
- paddle_billing/Notifications/Events/TransactionPaymentFailed.py +17 -0
- paddle_billing/Notifications/Events/TransactionReady.py +17 -0
- paddle_billing/Notifications/Events/TransactionUpdated.py +17 -0
- paddle_billing/Notifications/Events/__init__.py +0 -0
- paddle_billing/Notifications/PaddleSignature.py +128 -0
- paddle_billing/Notifications/Secret.py +8 -0
- paddle_billing/Notifications/Verifier.py +55 -0
- paddle_billing/Notifications/__init__.py +3 -0
- paddle_billing/Options.py +10 -0
- paddle_billing/PaddleStrEnum.py +44 -0
- paddle_billing/RecursivelyRemoveKey.py +14 -0
- paddle_billing/Resources/Addresses/AddressesClient.py +58 -0
- paddle_billing/Resources/Addresses/Operations/CreateAddress.py +20 -0
- paddle_billing/Resources/Addresses/Operations/ListAddresses.py +42 -0
- paddle_billing/Resources/Addresses/Operations/UpdateAddress.py +21 -0
- paddle_billing/Resources/Addresses/Operations/__init__.py +3 -0
- paddle_billing/Resources/Addresses/__init__.py +0 -0
- paddle_billing/Resources/Adjustments/AdjustmentsClient.py +36 -0
- paddle_billing/Resources/Adjustments/Operations/Create/AdjustmentItem.py +11 -0
- paddle_billing/Resources/Adjustments/Operations/Create/__init__.py +0 -0
- paddle_billing/Resources/Adjustments/Operations/CreateAdjustment.py +28 -0
- paddle_billing/Resources/Adjustments/Operations/ListAdjustments.py +60 -0
- paddle_billing/Resources/Adjustments/Operations/__init__.py +3 -0
- paddle_billing/Resources/Adjustments/__init__.py +0 -0
- paddle_billing/Resources/Businesses/BusinessesClient.py +58 -0
- paddle_billing/Resources/Businesses/Operations/CreateBusiness.py +17 -0
- paddle_billing/Resources/Businesses/Operations/ListBusinesses.py +45 -0
- paddle_billing/Resources/Businesses/Operations/UpdateBusiness.py +18 -0
- paddle_billing/Resources/Businesses/Operations/__init__.py +3 -0
- paddle_billing/Resources/Businesses/__init__.py +0 -0
- paddle_billing/Resources/Customers/CustomersClient.py +65 -0
- paddle_billing/Resources/Customers/Operations/CreateCustomer.py +16 -0
- paddle_billing/Resources/Customers/Operations/ListCreditBalances.py +28 -0
- paddle_billing/Resources/Customers/Operations/ListCustomers.py +50 -0
- paddle_billing/Resources/Customers/Operations/UpdateCustomer.py +17 -0
- paddle_billing/Resources/Customers/Operations/__init__.py +4 -0
- paddle_billing/Resources/Customers/__init__.py +0 -0
- paddle_billing/Resources/Discounts/DiscountsClient.py +55 -0
- paddle_billing/Resources/Discounts/Operations/CreateDiscount.py +24 -0
- paddle_billing/Resources/Discounts/Operations/ListDiscounts.py +46 -0
- paddle_billing/Resources/Discounts/Operations/UpdateDiscount.py +25 -0
- paddle_billing/Resources/Discounts/Operations/__init__.py +3 -0
- paddle_billing/Resources/Discounts/__init__.py +0 -0
- paddle_billing/Resources/EventTypes/EventTypesClient.py +22 -0
- paddle_billing/Resources/EventTypes/__init__.py +0 -0
- paddle_billing/Resources/Events/EventsClient.py +26 -0
- paddle_billing/Resources/Events/Operations/ListEvents.py +12 -0
- paddle_billing/Resources/Events/Operations/__init__.py +1 -0
- paddle_billing/Resources/Events/__init__.py +0 -0
- paddle_billing/Resources/NotificationLogs/NotificationLogsClient.py +26 -0
- paddle_billing/Resources/NotificationLogs/Operations/ListNotificationLogs.py +11 -0
- paddle_billing/Resources/NotificationLogs/Operations/__init__.py +1 -0
- paddle_billing/Resources/NotificationLogs/__init__.py +0 -0
- paddle_billing/Resources/NotificationSettings/NotificationSettingsClient.py +54 -0
- paddle_billing/Resources/NotificationSettings/Operations/CreateNotificationSetting.py +21 -0
- paddle_billing/Resources/NotificationSettings/Operations/UpdateNotificationSetting.py +20 -0
- paddle_billing/Resources/NotificationSettings/Operations/__init__.py +2 -0
- paddle_billing/Resources/NotificationSettings/__init__.py +0 -0
- paddle_billing/Resources/Notifications/NotificationsClient.py +44 -0
- paddle_billing/Resources/Notifications/Operations/ListNotifications.py +58 -0
- paddle_billing/Resources/Notifications/Operations/__init__.py +1 -0
- paddle_billing/Resources/Notifications/__init__.py +0 -0
- paddle_billing/Resources/Prices/Operations/CreatePrice.py +23 -0
- paddle_billing/Resources/Prices/Operations/List/Includes.py +5 -0
- paddle_billing/Resources/Prices/Operations/List/__init__.py +0 -0
- paddle_billing/Resources/Prices/Operations/ListPrices.py +62 -0
- paddle_billing/Resources/Prices/Operations/UpdatePrice.py +23 -0
- paddle_billing/Resources/Prices/Operations/__init__.py +4 -0
- paddle_billing/Resources/Prices/PricesClient.py +65 -0
- paddle_billing/Resources/Prices/__init__.py +0 -0
- paddle_billing/Resources/PricingPreviews/Operations/PreviewPrice.py +20 -0
- paddle_billing/Resources/PricingPreviews/Operations/__init__.py +1 -0
- paddle_billing/Resources/PricingPreviews/PricingPreviewsClient.py +20 -0
- paddle_billing/Resources/PricingPreviews/__init__.py +0 -0
- paddle_billing/Resources/Products/Operations/CreateProduct.py +18 -0
- paddle_billing/Resources/Products/Operations/List/Includes.py +5 -0
- paddle_billing/Resources/Products/Operations/List/__init__.py +0 -0
- paddle_billing/Resources/Products/Operations/ListProducts.py +59 -0
- paddle_billing/Resources/Products/Operations/UpdateProduct.py +19 -0
- paddle_billing/Resources/Products/Operations/__init__.py +4 -0
- paddle_billing/Resources/Products/ProductsClient.py +70 -0
- paddle_billing/Resources/Products/__init__.py +0 -0
- paddle_billing/Resources/Reports/Operations/CreateReport.py +27 -0
- paddle_billing/Resources/Reports/Operations/ListReports.py +35 -0
- paddle_billing/Resources/Reports/Operations/__init__.py +2 -0
- paddle_billing/Resources/Reports/ReportsClient.py +51 -0
- paddle_billing/Resources/Reports/__init__.py +0 -0
- paddle_billing/Resources/Shared/Operations/List/Comparator.py +8 -0
- paddle_billing/Resources/Shared/Operations/List/DateComparison.py +31 -0
- paddle_billing/Resources/Shared/Operations/List/OrderBy.py +21 -0
- paddle_billing/Resources/Shared/Operations/List/Pager.py +24 -0
- paddle_billing/Resources/Shared/Operations/List/__init__.py +0 -0
- paddle_billing/Resources/Shared/Operations/__init__.py +4 -0
- paddle_billing/Resources/Shared/__init__.py +0 -0
- paddle_billing/Resources/Subscriptions/Operations/CancelSubscription.py +12 -0
- paddle_billing/Resources/Subscriptions/Operations/CreateOneTimeCharge.py +22 -0
- paddle_billing/Resources/Subscriptions/Operations/Get/Includes.py +6 -0
- paddle_billing/Resources/Subscriptions/Operations/Get/__init__.py +0 -0
- paddle_billing/Resources/Subscriptions/Operations/ListSubscriptions.py +59 -0
- paddle_billing/Resources/Subscriptions/Operations/PauseSubscription.py +19 -0
- paddle_billing/Resources/Subscriptions/Operations/PreviewOneTimeCharge.py +22 -0
- paddle_billing/Resources/Subscriptions/Operations/PreviewUpdateSubscription.py +37 -0
- paddle_billing/Resources/Subscriptions/Operations/ResumeSubscription.py +17 -0
- paddle_billing/Resources/Subscriptions/Operations/Update/SubscriptionDiscount.py +9 -0
- paddle_billing/Resources/Subscriptions/Operations/Update/__init__.py +0 -0
- paddle_billing/Resources/Subscriptions/Operations/UpdateSubscription.py +37 -0
- paddle_billing/Resources/Subscriptions/Operations/__init__.py +10 -0
- paddle_billing/Resources/Subscriptions/SubscriptionsClient.py +121 -0
- paddle_billing/Resources/Subscriptions/__init__.py +0 -0
- paddle_billing/Resources/Transactions/Operations/CreateTransaction.py +25 -0
- paddle_billing/Resources/Transactions/Operations/List/Includes.py +11 -0
- paddle_billing/Resources/Transactions/Operations/List/Origin.py +10 -0
- paddle_billing/Resources/Transactions/Operations/List/__init__.py +0 -0
- paddle_billing/Resources/Transactions/Operations/ListTransactions.py +86 -0
- paddle_billing/Resources/Transactions/Operations/PreviewTransaction.py +24 -0
- paddle_billing/Resources/Transactions/Operations/UpdateTransaction.py +25 -0
- paddle_billing/Resources/Transactions/Operations/__init__.py +6 -0
- paddle_billing/Resources/Transactions/TransactionsClient.py +90 -0
- paddle_billing/Resources/Transactions/__init__.py +0 -0
- paddle_billing/Resources/__init__.py +0 -0
- paddle_billing/ResponseParser.py +65 -0
- paddle_billing/Undefined.py +2 -0
- paddle_billing/__init__.py +4 -0
- paddle_python_sdk-0.1.0.dist-info/LICENSE +190 -0
- paddle_python_sdk-0.1.0.dist-info/METADATA +184 -0
- paddle_python_sdk-0.1.0.dist-info/RECORD +517 -0
- paddle_python_sdk-0.1.0.dist-info/WHEEL +5 -0
- paddle_python_sdk-0.1.0.dist-info/top_level.txt +3 -0
- tests/Functional/Resources/Addresses/__init__.py +0 -0
- tests/Functional/Resources/Addresses/test_AddressesClient.py +274 -0
- tests/Functional/Resources/Adjustments/__init__.py +0 -0
- tests/Functional/Resources/Adjustments/test_AdjustmentsClient.py +188 -0
- tests/Functional/Resources/Businesses/__init__.py +0 -0
- tests/Functional/Resources/Businesses/test_BusinessesClient.py +279 -0
- tests/Functional/Resources/Customers/__init__.py +0 -0
- tests/Functional/Resources/Customers/test_CustomersClient.py +291 -0
- tests/Functional/Resources/Discounts/__init__.py +0 -0
- tests/Functional/Resources/Discounts/test_DiscountsClient.py +280 -0
- tests/Functional/Resources/EventTypes/__init__.py +0 -0
- tests/Functional/Resources/EventTypes/test_EventTypesClient.py +43 -0
- tests/Functional/Resources/Events/__init__.py +0 -0
- tests/Functional/Resources/Events/test_EventsClient.py +64 -0
- tests/Functional/Resources/NotificationLogs/__init__.py +0 -0
- tests/Functional/Resources/NotificationLogs/test_NotificationLogsClient.py +68 -0
- tests/Functional/Resources/NotificationSettings/__init__.py +0 -0
- tests/Functional/Resources/NotificationSettings/test_NotificationSettingsClient.py +287 -0
- tests/Functional/Resources/Notifications/__init__.py +0 -0
- tests/Functional/Resources/Notifications/test_NotificationsClient.py +202 -0
- tests/Functional/Resources/Prices/__init__.py +0 -0
- tests/Functional/Resources/Prices/test_PricesClient.py +307 -0
- tests/Functional/Resources/PricingPreviews/__init__.py +0 -0
- tests/Functional/Resources/PricingPreviews/test_PricingPreviewsClient.py +92 -0
- tests/Functional/Resources/Products/__init__.py +0 -0
- tests/Functional/Resources/Products/test_ProductsClient.py +271 -0
- tests/Functional/Resources/Reports/__init__.py +0 -0
- tests/Functional/Resources/Reports/test_ReportsClient.py +197 -0
- tests/Functional/Resources/Subscriptions/__init__.py +0 -0
- tests/Functional/Resources/Subscriptions/test_SubscriptionsClient.py +758 -0
- tests/Functional/Resources/Transactions/__init__.py +0 -0
- tests/Functional/Resources/Transactions/test_TransactionsClient.py +585 -0
- tests/Functional/Resources/__init__.py +0 -0
- tests/Functional/__init__.py +0 -0
- tests/Unit/Logger/__init__.py +0 -0
- tests/Unit/Logger/test_Logger.py +10 -0
- tests/Unit/Notification/__init__.py +0 -0
- tests/Unit/Notification/test_Verifier.py +63 -0
- tests/Unit/PaddleStrEnum/__init__.py +0 -0
- tests/Unit/PaddleStrEnum/test_PaddleStrEnum.py +52 -0
- tests/Unit/__init__.py +0 -0
- tests/Utils/FakeResponse.py +6 -0
- tests/Utils/ReadsFixture.py +33 -0
- tests/Utils/TestClient.py +48 -0
- tests/Utils/__init__.py +1 -0
- tests/__init__.py +0 -0
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
from paddle_billing.ResponseParser import ResponseParser
|
|
2
|
+
|
|
3
|
+
from paddle_billing.Entities.Adjustment import Adjustment
|
|
4
|
+
from paddle_billing.Entities.Collections import Paginator, AdjustmentCollection
|
|
5
|
+
|
|
6
|
+
from paddle_billing.Resources.Adjustments.Operations import CreateAdjustment, ListAdjustments
|
|
7
|
+
|
|
8
|
+
from typing import TYPE_CHECKING
|
|
9
|
+
if TYPE_CHECKING:
|
|
10
|
+
from paddle_billing.Client import Client
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
class AdjustmentsClient:
|
|
14
|
+
def __init__(self, client: 'Client'):
|
|
15
|
+
self.client = client
|
|
16
|
+
self.response = None
|
|
17
|
+
|
|
18
|
+
|
|
19
|
+
def list(self, operation: ListAdjustments = None) -> AdjustmentCollection:
|
|
20
|
+
if operation is None:
|
|
21
|
+
operation = ListAdjustments()
|
|
22
|
+
|
|
23
|
+
self.response = self.client.get_raw('/adjustments', operation.get_parameters())
|
|
24
|
+
parser = ResponseParser(self.response)
|
|
25
|
+
|
|
26
|
+
return AdjustmentCollection.from_list(
|
|
27
|
+
parser.get_data(),
|
|
28
|
+
Paginator(self.client, parser.get_pagination(), AdjustmentCollection)
|
|
29
|
+
)
|
|
30
|
+
|
|
31
|
+
|
|
32
|
+
def create(self, operation: CreateAdjustment) -> Adjustment:
|
|
33
|
+
self.response = self.client.post_raw('/adjustments', operation.get_parameters())
|
|
34
|
+
parser = ResponseParser(self.response)
|
|
35
|
+
|
|
36
|
+
return Adjustment.from_dict(parser.get_data())
|
|
File without changes
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
from dataclasses import dataclass
|
|
2
|
+
|
|
3
|
+
from paddle_billing.Entities.Shared import Action
|
|
4
|
+
|
|
5
|
+
from paddle_billing.Resources.Adjustments.Operations import CreateAdjustmentItem
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
@dataclass
|
|
9
|
+
class CreateAdjustment:
|
|
10
|
+
action: Action
|
|
11
|
+
items: list[CreateAdjustmentItem]
|
|
12
|
+
reason: str
|
|
13
|
+
transaction_id: str
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
def get_parameters(self) -> dict:
|
|
17
|
+
items = [{
|
|
18
|
+
'item_id': item.item_id,
|
|
19
|
+
'type': item.type,
|
|
20
|
+
'amount': item.amount,
|
|
21
|
+
} for item in self.items]
|
|
22
|
+
|
|
23
|
+
return {
|
|
24
|
+
'action': self.action.value,
|
|
25
|
+
'items': items,
|
|
26
|
+
'reason': self.reason,
|
|
27
|
+
'transaction_id': self.transaction_id,
|
|
28
|
+
}
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
from paddle_billing.EnumStringify import enum_stringify
|
|
2
|
+
from paddle_billing.HasParameters import HasParameters
|
|
3
|
+
|
|
4
|
+
from paddle_billing.Entities.Shared import Action, AdjustmentStatus
|
|
5
|
+
|
|
6
|
+
from paddle_billing.Exceptions.SdkExceptions.InvalidArgumentException import InvalidArgumentException
|
|
7
|
+
|
|
8
|
+
from paddle_billing.Resources.Shared.Operations import Pager
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
class ListAdjustments(HasParameters):
|
|
12
|
+
def __init__(
|
|
13
|
+
self,
|
|
14
|
+
pager: Pager | None = None,
|
|
15
|
+
ids: list[str] = None,
|
|
16
|
+
statuses: list[AdjustmentStatus] = None,
|
|
17
|
+
customer_ids: list[str] = None,
|
|
18
|
+
transaction_ids: list[str] = None,
|
|
19
|
+
subscription_ids: list[str] = None,
|
|
20
|
+
action: Action | None = None,
|
|
21
|
+
):
|
|
22
|
+
self.pager = pager
|
|
23
|
+
self.action = action
|
|
24
|
+
self.ids = ids if ids is not None else []
|
|
25
|
+
self.statuses = statuses if statuses is not None else []
|
|
26
|
+
self.customer_ids = customer_ids if customer_ids is not None else []
|
|
27
|
+
self.transaction_ids = transaction_ids if transaction_ids is not None else []
|
|
28
|
+
self.subscription_ids = subscription_ids if subscription_ids is not None else []
|
|
29
|
+
|
|
30
|
+
# Validation
|
|
31
|
+
for field_name, field_value, field_type in [
|
|
32
|
+
('ids', self.ids, str),
|
|
33
|
+
('customer_ids', self.customer_ids, str),
|
|
34
|
+
('statuses', self.statuses, AdjustmentStatus),
|
|
35
|
+
('subscription_ids', self.subscription_ids, str),
|
|
36
|
+
('transaction_ids', self.transaction_ids, str),
|
|
37
|
+
]:
|
|
38
|
+
invalid_items = [item for item in field_value if not isinstance(item, field_type)]
|
|
39
|
+
if invalid_items:
|
|
40
|
+
raise InvalidArgumentException(field_name, field_type.__name__, invalid_items)
|
|
41
|
+
|
|
42
|
+
|
|
43
|
+
def get_parameters(self) -> dict:
|
|
44
|
+
parameters = {}
|
|
45
|
+
if self.pager:
|
|
46
|
+
parameters.update(self.pager.get_parameters())
|
|
47
|
+
if self.ids:
|
|
48
|
+
parameters['id'] = ','.join(self.ids)
|
|
49
|
+
if self.statuses:
|
|
50
|
+
parameters['status'] = ','.join(map(enum_stringify, self.statuses))
|
|
51
|
+
if self.customer_ids:
|
|
52
|
+
parameters['customer_id'] = ','.join(self.customer_ids)
|
|
53
|
+
if self.transaction_ids:
|
|
54
|
+
parameters['transaction_id'] = ','.join(self.transaction_ids)
|
|
55
|
+
if self.subscription_ids:
|
|
56
|
+
parameters['subscription_id'] = ','.join(self.subscription_ids)
|
|
57
|
+
if self.action:
|
|
58
|
+
parameters['action'] = self.action.value
|
|
59
|
+
|
|
60
|
+
return parameters
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
from paddle_billing.Resources.Adjustments.Operations.Create.AdjustmentItem import AdjustmentItem as CreateAdjustmentItem
|
|
2
|
+
from paddle_billing.Resources.Adjustments.Operations.CreateAdjustment import CreateAdjustment
|
|
3
|
+
from paddle_billing.Resources.Adjustments.Operations.ListAdjustments import ListAdjustments
|
|
File without changes
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
from paddle_billing.ResponseParser import ResponseParser
|
|
2
|
+
|
|
3
|
+
from paddle_billing.Entities.Business import Business
|
|
4
|
+
from paddle_billing.Entities.Collections import Paginator, BusinessCollection
|
|
5
|
+
from paddle_billing.Entities.Shared import Status
|
|
6
|
+
|
|
7
|
+
from paddle_billing.Resources.Businesses.Operations import CreateBusiness, ListBusinesses, UpdateBusiness
|
|
8
|
+
|
|
9
|
+
from typing import TYPE_CHECKING
|
|
10
|
+
if TYPE_CHECKING:
|
|
11
|
+
from paddle_billing.Client import Client
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
class BusinessesClient:
|
|
15
|
+
def __init__(self, client: 'Client'):
|
|
16
|
+
self.client = client
|
|
17
|
+
self.response = None
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
def list(self, customer_id: str, operation: ListBusinesses = None) -> BusinessCollection:
|
|
21
|
+
if operation is None:
|
|
22
|
+
operation = ListBusinesses()
|
|
23
|
+
|
|
24
|
+
self.response = self.client.get_raw(f"/customers/{customer_id}/businesses", operation.get_parameters())
|
|
25
|
+
parser = ResponseParser(self.response)
|
|
26
|
+
|
|
27
|
+
return BusinessCollection.from_list(
|
|
28
|
+
parser.get_data(),
|
|
29
|
+
Paginator(self.client, parser.get_pagination(), BusinessCollection)
|
|
30
|
+
)
|
|
31
|
+
|
|
32
|
+
|
|
33
|
+
def get(self, customer_id: str, business_id: str) -> Business:
|
|
34
|
+
self.response = self.client.get_raw(f"/customers/{customer_id}/businesses/{business_id}")
|
|
35
|
+
parser = ResponseParser(self.response)
|
|
36
|
+
|
|
37
|
+
return Business.from_dict(parser.get_data())
|
|
38
|
+
|
|
39
|
+
|
|
40
|
+
def create(self, customer_id: str, operation: CreateBusiness) -> Business:
|
|
41
|
+
self.response = self.client.post_raw(f"/customers/{customer_id}/businesses", operation.get_parameters())
|
|
42
|
+
parser = ResponseParser(self.response)
|
|
43
|
+
|
|
44
|
+
return Business.from_dict(parser.get_data())
|
|
45
|
+
|
|
46
|
+
|
|
47
|
+
def update(self, customer_id: str, business_id: str, operation: UpdateBusiness) -> Business:
|
|
48
|
+
self.response = self.client.patch_raw(
|
|
49
|
+
f"/customers/{customer_id}/businesses/{business_id}",
|
|
50
|
+
operation.get_parameters()
|
|
51
|
+
)
|
|
52
|
+
parser = ResponseParser(self.response)
|
|
53
|
+
|
|
54
|
+
return Business.from_dict(parser.get_data())
|
|
55
|
+
|
|
56
|
+
|
|
57
|
+
def archive(self, customer_id: str, business_id: str) -> Business:
|
|
58
|
+
return self.update(customer_id, business_id, UpdateBusiness(status=Status.Archived))
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
from dataclasses import asdict, dataclass
|
|
2
|
+
|
|
3
|
+
from paddle_billing.Undefined import Undefined
|
|
4
|
+
from paddle_billing.Entities.Shared import Contacts, CustomData
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
@dataclass
|
|
8
|
+
class CreateBusiness:
|
|
9
|
+
name: str
|
|
10
|
+
company_number: str | None | Undefined = Undefined()
|
|
11
|
+
tax_identifier: str | None | Undefined = Undefined()
|
|
12
|
+
contacts: list[Contacts] | Undefined = Undefined()
|
|
13
|
+
custom_data: CustomData | None | Undefined = Undefined()
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
def get_parameters(self) -> dict:
|
|
17
|
+
return asdict(self)
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
from paddle_billing.EnumStringify import enum_stringify
|
|
2
|
+
from paddle_billing.HasParameters import HasParameters
|
|
3
|
+
|
|
4
|
+
from paddle_billing.Entities.Shared import Status
|
|
5
|
+
|
|
6
|
+
from paddle_billing.Exceptions.SdkExceptions.InvalidArgumentException import InvalidArgumentException
|
|
7
|
+
|
|
8
|
+
from paddle_billing.Resources.Shared.Operations import Pager
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
class ListBusinesses(HasParameters):
|
|
12
|
+
def __init__(
|
|
13
|
+
self,
|
|
14
|
+
pager: Pager | None = None,
|
|
15
|
+
ids: list[str] = None,
|
|
16
|
+
statuses: list[Status] = None,
|
|
17
|
+
search: str | None = None,
|
|
18
|
+
):
|
|
19
|
+
self.pager = pager
|
|
20
|
+
self.search = search
|
|
21
|
+
self.ids = ids if ids is not None else []
|
|
22
|
+
self.statuses = statuses if statuses is not None else []
|
|
23
|
+
|
|
24
|
+
# Validation
|
|
25
|
+
for field_name, field_value, field_type in [
|
|
26
|
+
('ids', self.ids, str),
|
|
27
|
+
('statuses', self.statuses, Status),
|
|
28
|
+
]:
|
|
29
|
+
invalid_items = [item for item in field_value if not isinstance(item, field_type)]
|
|
30
|
+
if invalid_items:
|
|
31
|
+
raise InvalidArgumentException(field_name, field_type.__name__, invalid_items)
|
|
32
|
+
|
|
33
|
+
|
|
34
|
+
def get_parameters(self) -> dict:
|
|
35
|
+
parameters = {}
|
|
36
|
+
if self.pager:
|
|
37
|
+
parameters.update(self.pager.get_parameters())
|
|
38
|
+
if self.ids:
|
|
39
|
+
parameters['id'] = ','.join(self.ids)
|
|
40
|
+
if self.statuses:
|
|
41
|
+
parameters['status'] = ','.join(map(enum_stringify, self.statuses))
|
|
42
|
+
if self.search:
|
|
43
|
+
parameters['search'] = self.search
|
|
44
|
+
|
|
45
|
+
return parameters
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
from dataclasses import asdict, dataclass
|
|
2
|
+
|
|
3
|
+
from paddle_billing.Undefined import Undefined
|
|
4
|
+
from paddle_billing.Entities.Shared import Contacts, CustomData, Status
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
@dataclass
|
|
8
|
+
class UpdateBusiness:
|
|
9
|
+
name: str | Undefined = Undefined
|
|
10
|
+
company_number: str | None | Undefined = Undefined()
|
|
11
|
+
tax_identifier: str | None | Undefined = Undefined()
|
|
12
|
+
contacts: list[Contacts] | Undefined = Undefined()
|
|
13
|
+
custom_data: CustomData | None | Undefined = Undefined()
|
|
14
|
+
status: Status | Undefined = Undefined()
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
def get_parameters(self) -> dict:
|
|
18
|
+
return asdict(self)
|
|
File without changes
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
from paddle_billing.ResponseParser import ResponseParser
|
|
2
|
+
|
|
3
|
+
from paddle_billing.Entities.Collections import Paginator, CreditBalanceCollection, CustomerCollection
|
|
4
|
+
from paddle_billing.Entities.Customer import Customer
|
|
5
|
+
from paddle_billing.Entities.Shared import Status
|
|
6
|
+
|
|
7
|
+
from paddle_billing.Resources.Customers.Operations import CreateCustomer, ListCreditBalances, ListCustomers, UpdateCustomer
|
|
8
|
+
|
|
9
|
+
from typing import TYPE_CHECKING
|
|
10
|
+
if TYPE_CHECKING:
|
|
11
|
+
from paddle_billing.Client import Client
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
class CustomersClient:
|
|
15
|
+
def __init__(self, client: 'Client'):
|
|
16
|
+
self.client = client
|
|
17
|
+
self.response = None
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
def list(self, operation: ListCustomers = None) -> CustomerCollection:
|
|
21
|
+
if operation is None:
|
|
22
|
+
operation = ListCustomers()
|
|
23
|
+
|
|
24
|
+
self.response = self.client.get_raw('/customers', operation.get_parameters())
|
|
25
|
+
parser = ResponseParser(self.response)
|
|
26
|
+
|
|
27
|
+
return CustomerCollection.from_list(
|
|
28
|
+
parser.get_data(),
|
|
29
|
+
Paginator(self.client, parser.get_pagination(), CustomerCollection)
|
|
30
|
+
)
|
|
31
|
+
|
|
32
|
+
|
|
33
|
+
def get(self, customer_id: str) -> Customer:
|
|
34
|
+
self.response = self.client.get_raw(f"/customers/{customer_id}")
|
|
35
|
+
parser = ResponseParser(self.response)
|
|
36
|
+
|
|
37
|
+
return Customer.from_dict(parser.get_data())
|
|
38
|
+
|
|
39
|
+
|
|
40
|
+
def create(self, operation: CreateCustomer) -> Customer:
|
|
41
|
+
self.response = self.client.post_raw('/customers', operation.get_parameters())
|
|
42
|
+
parser = ResponseParser(self.response)
|
|
43
|
+
|
|
44
|
+
return Customer.from_dict(parser.get_data())
|
|
45
|
+
|
|
46
|
+
|
|
47
|
+
def update(self, customer_id: str, operation: UpdateCustomer) -> Customer:
|
|
48
|
+
self.response = self.client.patch_raw(f"/customers/{customer_id}", operation.get_parameters())
|
|
49
|
+
parser = ResponseParser(self.response)
|
|
50
|
+
|
|
51
|
+
return Customer.from_dict(parser.get_data())
|
|
52
|
+
|
|
53
|
+
|
|
54
|
+
def archive(self, customer_id: str) -> Customer:
|
|
55
|
+
return self.update(customer_id, UpdateCustomer(status=Status.Archived))
|
|
56
|
+
|
|
57
|
+
|
|
58
|
+
def credit_balances(self, customer_id: str, operation: ListCreditBalances = None) -> CreditBalanceCollection:
|
|
59
|
+
if operation is None:
|
|
60
|
+
operation = ListCreditBalances()
|
|
61
|
+
|
|
62
|
+
self.response = self.client.get_raw(f"/customers/{customer_id}/credit-balances")
|
|
63
|
+
parser = ResponseParser(self.response)
|
|
64
|
+
|
|
65
|
+
return CreditBalanceCollection.from_list(parser.get_data())
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
from dataclasses import asdict, dataclass
|
|
2
|
+
|
|
3
|
+
from paddle_billing.Undefined import Undefined
|
|
4
|
+
from paddle_billing.Entities.Shared import CustomData
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
@dataclass
|
|
8
|
+
class CreateCustomer:
|
|
9
|
+
email: str
|
|
10
|
+
name: str | None | Undefined = Undefined()
|
|
11
|
+
custom_data: CustomData | None | Undefined = Undefined()
|
|
12
|
+
locale: str | Undefined = Undefined()
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
def get_parameters(self) -> dict:
|
|
16
|
+
return asdict(self)
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
from paddle_billing.EnumStringify import enum_stringify
|
|
2
|
+
from paddle_billing.HasParameters import HasParameters
|
|
3
|
+
|
|
4
|
+
from paddle_billing.Entities.Shared import CurrencyCode
|
|
5
|
+
|
|
6
|
+
from paddle_billing.Exceptions.SdkExceptions.InvalidArgumentException import InvalidArgumentException
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
class ListCreditBalances(HasParameters):
|
|
10
|
+
def __init__(
|
|
11
|
+
self,
|
|
12
|
+
currency_code: list[CurrencyCode] = None,
|
|
13
|
+
):
|
|
14
|
+
self.currency_code = currency_code if currency_code is not None else []
|
|
15
|
+
|
|
16
|
+
# Validation
|
|
17
|
+
for field_name, field_value, field_type in [('currency_code', self.currency_code, CurrencyCode)]:
|
|
18
|
+
invalid_items = [item for item in field_value if not isinstance(item, field_type)]
|
|
19
|
+
if invalid_items:
|
|
20
|
+
raise InvalidArgumentException(field_name, field_type.__name__, invalid_items)
|
|
21
|
+
|
|
22
|
+
|
|
23
|
+
def get_parameters(self) -> dict:
|
|
24
|
+
parameters = {}
|
|
25
|
+
if self.currency_code:
|
|
26
|
+
parameters['currency_code'] = ','.join(map(enum_stringify, self.currency_code))
|
|
27
|
+
|
|
28
|
+
return parameters
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
from paddle_billing.EnumStringify import enum_stringify
|
|
2
|
+
from paddle_billing.HasParameters import HasParameters
|
|
3
|
+
|
|
4
|
+
from paddle_billing.Entities.Shared import Status
|
|
5
|
+
|
|
6
|
+
from paddle_billing.Exceptions.SdkExceptions.InvalidArgumentException import InvalidArgumentException
|
|
7
|
+
|
|
8
|
+
from paddle_billing.Resources.Shared.Operations import Pager
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
class ListCustomers(HasParameters):
|
|
12
|
+
def __init__(
|
|
13
|
+
self,
|
|
14
|
+
pager: Pager | None = None,
|
|
15
|
+
ids: list[str] = None,
|
|
16
|
+
statuses: list[Status] = None,
|
|
17
|
+
search: str | None = None,
|
|
18
|
+
emails: list[str] = None,
|
|
19
|
+
):
|
|
20
|
+
self.pager = pager
|
|
21
|
+
self.search = search
|
|
22
|
+
self.ids = ids if ids is not None else []
|
|
23
|
+
self.statuses = statuses if statuses is not None else []
|
|
24
|
+
self.emails = emails if emails is not None else []
|
|
25
|
+
|
|
26
|
+
# Validation
|
|
27
|
+
for field_name, field_value, field_type in [
|
|
28
|
+
('ids', self.ids, str),
|
|
29
|
+
('statuses', self.statuses, Status),
|
|
30
|
+
('emails', self.emails, str),
|
|
31
|
+
]:
|
|
32
|
+
invalid_items = [item for item in field_value if not isinstance(item, field_type)]
|
|
33
|
+
if invalid_items:
|
|
34
|
+
raise InvalidArgumentException(field_name, field_type.__name__, invalid_items)
|
|
35
|
+
|
|
36
|
+
|
|
37
|
+
def get_parameters(self) -> dict:
|
|
38
|
+
parameters = {}
|
|
39
|
+
if self.pager:
|
|
40
|
+
parameters.update(self.pager.get_parameters())
|
|
41
|
+
if self.ids:
|
|
42
|
+
parameters['id'] = ','.join(self.ids)
|
|
43
|
+
if self.statuses:
|
|
44
|
+
parameters['status'] = ','.join(map(enum_stringify, self.statuses))
|
|
45
|
+
if self.search:
|
|
46
|
+
parameters['search'] = self.search
|
|
47
|
+
if self.emails:
|
|
48
|
+
parameters['email'] = ','.join(self.emails)
|
|
49
|
+
|
|
50
|
+
return parameters
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
from dataclasses import asdict, dataclass
|
|
2
|
+
|
|
3
|
+
from paddle_billing.Undefined import Undefined
|
|
4
|
+
from paddle_billing.Entities.Shared import CustomData, Status
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
@dataclass
|
|
8
|
+
class UpdateCustomer:
|
|
9
|
+
email: str | Undefined = Undefined()
|
|
10
|
+
name: str | None | Undefined = Undefined()
|
|
11
|
+
custom_data: CustomData | None | Undefined = Undefined()
|
|
12
|
+
locale: str | Undefined = Undefined()
|
|
13
|
+
status: Status | Undefined = Undefined()
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
def get_parameters(self) -> dict:
|
|
17
|
+
return asdict(self)
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
from paddle_billing.Resources.Customers.Operations.CreateCustomer import CreateCustomer
|
|
2
|
+
from paddle_billing.Resources.Customers.Operations.ListCreditBalances import ListCreditBalances
|
|
3
|
+
from paddle_billing.Resources.Customers.Operations.ListCustomers import ListCustomers
|
|
4
|
+
from paddle_billing.Resources.Customers.Operations.UpdateCustomer import UpdateCustomer
|
|
File without changes
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
from paddle_billing.ResponseParser import ResponseParser
|
|
2
|
+
|
|
3
|
+
from paddle_billing.Entities.Collections import Paginator, DiscountCollection
|
|
4
|
+
from paddle_billing.Entities.Discount import Discount
|
|
5
|
+
from paddle_billing.Entities.Discounts import DiscountStatus
|
|
6
|
+
|
|
7
|
+
from paddle_billing.Resources.Discounts.Operations import CreateDiscount, ListDiscounts, UpdateDiscount
|
|
8
|
+
|
|
9
|
+
from typing import TYPE_CHECKING
|
|
10
|
+
if TYPE_CHECKING:
|
|
11
|
+
from paddle_billing.Client import Client
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
class DiscountsClient:
|
|
15
|
+
def __init__(self, client: 'Client'):
|
|
16
|
+
self.client = client
|
|
17
|
+
self.response = None
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
def list(self, operation: ListDiscounts = None) -> DiscountCollection:
|
|
21
|
+
if operation is None:
|
|
22
|
+
operation = ListDiscounts()
|
|
23
|
+
|
|
24
|
+
self.response = self.client.get_raw('/discounts', operation.get_parameters())
|
|
25
|
+
parser = ResponseParser(self.response)
|
|
26
|
+
|
|
27
|
+
return DiscountCollection.from_list(
|
|
28
|
+
parser.get_data(),
|
|
29
|
+
Paginator(self.client, parser.get_pagination(), DiscountCollection)
|
|
30
|
+
)
|
|
31
|
+
|
|
32
|
+
|
|
33
|
+
def get(self, discount_id: str) -> Discount:
|
|
34
|
+
self.response = self.client.get_raw(f"/discounts/{discount_id}")
|
|
35
|
+
parser = ResponseParser(self.response)
|
|
36
|
+
|
|
37
|
+
return Discount.from_dict(parser.get_data())
|
|
38
|
+
|
|
39
|
+
|
|
40
|
+
def create(self, operation: CreateDiscount) -> Discount:
|
|
41
|
+
self.response = self.client.post_raw('/discounts', operation.get_parameters())
|
|
42
|
+
parser = ResponseParser(self.response)
|
|
43
|
+
|
|
44
|
+
return Discount.from_dict(parser.get_data())
|
|
45
|
+
|
|
46
|
+
|
|
47
|
+
def update(self, discount_id: str, operation: UpdateDiscount) -> Discount:
|
|
48
|
+
self.response = self.client.patch_raw(f"/discounts/{discount_id}", operation.get_parameters())
|
|
49
|
+
parser = ResponseParser(self.response)
|
|
50
|
+
|
|
51
|
+
return Discount.from_dict(parser.get_data())
|
|
52
|
+
|
|
53
|
+
|
|
54
|
+
def archive(self, discount_id: str) -> Discount:
|
|
55
|
+
return self.update(discount_id, UpdateDiscount(status=DiscountStatus.Archived))
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
from dataclasses import asdict, dataclass
|
|
2
|
+
|
|
3
|
+
from paddle_billing.Undefined import Undefined
|
|
4
|
+
from paddle_billing.Entities.Discounts import DiscountType
|
|
5
|
+
from paddle_billing.Entities.Shared import CurrencyCode
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
@dataclass
|
|
9
|
+
class CreateDiscount:
|
|
10
|
+
amount: str
|
|
11
|
+
description: str
|
|
12
|
+
type: DiscountType
|
|
13
|
+
enabled_for_checkout: bool
|
|
14
|
+
recur: bool
|
|
15
|
+
currency_code: CurrencyCode
|
|
16
|
+
code: str | None | Undefined = Undefined()
|
|
17
|
+
maximum_recurring_intervals: int | None | Undefined = Undefined()
|
|
18
|
+
usage_limit: int | None | Undefined = Undefined()
|
|
19
|
+
restrict_to: list[str] | None | Undefined = Undefined()
|
|
20
|
+
expires_at: str | None | Undefined = Undefined()
|
|
21
|
+
|
|
22
|
+
|
|
23
|
+
def get_parameters(self) -> dict:
|
|
24
|
+
return asdict(self)
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
from paddle_billing.EnumStringify import enum_stringify
|
|
2
|
+
from paddle_billing.HasParameters import HasParameters
|
|
3
|
+
|
|
4
|
+
from paddle_billing.Entities.Shared import Status
|
|
5
|
+
|
|
6
|
+
from paddle_billing.Exceptions.SdkExceptions.InvalidArgumentException import InvalidArgumentException
|
|
7
|
+
|
|
8
|
+
from paddle_billing.Resources.Shared.Operations import Pager
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
class ListDiscounts(HasParameters):
|
|
12
|
+
def __init__(
|
|
13
|
+
self,
|
|
14
|
+
pager: Pager | None = None,
|
|
15
|
+
ids: list[str] = None,
|
|
16
|
+
statuses: list[Status] = None,
|
|
17
|
+
codes: list[str] = None,
|
|
18
|
+
):
|
|
19
|
+
self.pager = pager
|
|
20
|
+
self.ids = ids if ids is not None else []
|
|
21
|
+
self.statuses = statuses if statuses is not None else []
|
|
22
|
+
self.codes = codes if codes is not None else []
|
|
23
|
+
|
|
24
|
+
# Validation
|
|
25
|
+
for field_name, field_value, field_type in [
|
|
26
|
+
('ids', self.ids, str),
|
|
27
|
+
('statuses', self.statuses, Status),
|
|
28
|
+
('codes', self.codes, str),
|
|
29
|
+
]:
|
|
30
|
+
invalid_items = [item for item in field_value if not isinstance(item, field_type)]
|
|
31
|
+
if invalid_items:
|
|
32
|
+
raise InvalidArgumentException(field_name, field_type.__name__, invalid_items)
|
|
33
|
+
|
|
34
|
+
|
|
35
|
+
def get_parameters(self) -> dict:
|
|
36
|
+
parameters = {}
|
|
37
|
+
if self.pager:
|
|
38
|
+
parameters.update(self.pager.get_parameters())
|
|
39
|
+
if self.ids:
|
|
40
|
+
parameters['id'] = ','.join(self.ids)
|
|
41
|
+
if self.statuses:
|
|
42
|
+
parameters['status'] = ','.join(map(enum_stringify, self.statuses))
|
|
43
|
+
if self.codes:
|
|
44
|
+
parameters['code'] = ','.join(self.codes)
|
|
45
|
+
|
|
46
|
+
return parameters
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
from dataclasses import asdict, dataclass
|
|
2
|
+
|
|
3
|
+
from paddle_billing.Undefined import Undefined
|
|
4
|
+
from paddle_billing.Entities.Discounts import DiscountStatus, DiscountType
|
|
5
|
+
from paddle_billing.Entities.Shared import CurrencyCode
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
@dataclass
|
|
9
|
+
class UpdateDiscount:
|
|
10
|
+
amount: str | Undefined = Undefined()
|
|
11
|
+
description: str | Undefined = Undefined()
|
|
12
|
+
type: DiscountType | Undefined = Undefined()
|
|
13
|
+
enabled_for_checkout: bool | Undefined = Undefined()
|
|
14
|
+
recur: bool | Undefined = Undefined()
|
|
15
|
+
currency_code: CurrencyCode | Undefined = Undefined()
|
|
16
|
+
code: str | None | Undefined = Undefined()
|
|
17
|
+
maximum_recurring_intervals: int | None | Undefined = Undefined()
|
|
18
|
+
usage_limit: int | None | Undefined = Undefined()
|
|
19
|
+
restrict_to: list[str] | None | Undefined = Undefined()
|
|
20
|
+
expires_at: str | None | Undefined = Undefined()
|
|
21
|
+
status: DiscountStatus | Undefined = Undefined()
|
|
22
|
+
|
|
23
|
+
|
|
24
|
+
def get_parameters(self) -> dict:
|
|
25
|
+
return asdict(self)
|
|
File without changes
|