Skip to main content

A type hinted async Python wrapper for the Upgrade.Chat API

Project description

Upgrade.Chat Python Wrapper

A type hinted async Python wrapper for interacting with the Upgrade.Chat API.

PyPi Downloads GitHub License

Python 3.9 Python 3.10 Python 3.11

Pydantic v1 Pydantic v2

Introduction

This package provides a convenient and easy-to-use Python interface for the Upgrade.Chat API, allowing developers to integrate Upgrade.Chat's services into their applications. Upgrade.Chat is a platform that facilitates monetization for community services, and this wrapper aims to simplify the automation of tasks such as managing orders, products, and users.

Installation

To install the package, run the following command:

pip install upchatpy

Usage

Before you can start using the API, you need to obtain your client ID and client secret from Upgrade.Chat. Once you have them, you can begin by creating a Client instance:

from upgrade_chat import Client

client_id = 'your_client_id'
client_secret = 'your_client_secret'

client = Client(client_id, client_secret)

Authentication

The wrapper handles authentication automatically when making API calls. However, you can manually authenticate and retrieve the access token as follows:

await client.get_auth()
print(client.access_token)  # Access token is now available

Fetching Orders

To fetch orders, use the following method:

orders_response = await client.get_orders()
for order in orders_response.data:
    print(order.uuid, order.total)

Fetching Products

Retrieve a list of products using:

products_response = await client.get_products()
for product in products_response.data:
    print(product.uuid, product.name)

Fetching Users

To get a list of users, you can do:

users_response = await client.get_users()
for user in users_response.data:
    print(user.discord_id, user.username)

Exception Handling

The Upgrade.Chat Python Wrapper provides custom exceptions to help you handle potential errors that may occur during API interaction.

Custom Exceptions

  • AuthenticationError: Raised when there is a problem with client authentication, such as incorrect client ID or client secret.
  • HTTPError: Raised for general HTTP-related errors when making API requests.
  • ResourceNotFoundError: Raised when a requested resource is not found on the Upgrade.Chat API.

Example Usage

from upgrade_chat import Client
from upgrade_chat.exceptions import AuthenticationError, HTTPError, ResourceNotFoundError

client_id = 'your_client_id'
client_secret = 'your_client_secret'
client = Client(client_id, client_secret)

async def main():
    try:
        orders_response = await client.get_orders()
        for order in orders_response.data:
            print(order.uuid, order.total)
    except AuthenticationError as e:
        print(f"Authentication failed with status code {e.status_code}: {e.message}")
    except ResourceNotFoundError as e:
        print(f"Resource not found with status code {e.status_code}: {e.message}")
    except HTTPError as e:
        print(f"HTTP error with status code {e.status_code}: {e.message}")
    except Exception as e:
        print(f"An unexpected error occurred: {e}")

Development

This package is under active development, and contributions are welcome! If you encounter any issues or have feature requests, please submit them to the project's issue tracker.

License

This wrapper is distributed under the MIT license. See the LICENSE file for more information.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

upchatpy-0.1.5.tar.gz (9.9 kB view details)

Uploaded Source

File details

Details for the file upchatpy-0.1.5.tar.gz.

File metadata

  • Download URL: upchatpy-0.1.5.tar.gz
  • Upload date:
  • Size: 9.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.11.2

File hashes

Hashes for upchatpy-0.1.5.tar.gz
Algorithm Hash digest
SHA256 a30df74157a5fb09f4558ba04532c3b607b9588d8e7d0d13f5a6b05b918c65d4
MD5 0d8e99ff44e222657e7db67be244725b
BLAKE2b-256 acc3485dadbcab82cb6bb639d76bf9d6ec007de3f3e00652f11579e3991fd301

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page