Skip to main content

Python client for XCover API (XCore).

Project description

· xcover-python ·

Supported Versions codecov


xcover-python is a Python API Client for XCover.


Installation

xcover-python is available on PyPI. To install the latest version run:

pip install xcover

or

poertry install xcover

Features

  • Authentication
  • Simple configuration using env variables
  • (WIP) High-level API to perform partner operations on quotes and bookings

Configuration

Config object

The library provides XCoverConfig dataclass that can be used as shown:

from xcover import XCover, XCoverConfig

client = XCover(
    XCoverConfig( # minimal config, check autocomplete for more options
        base_url="https://api.xcover.com/xcover",
        partner_code="--PARTNER_CODE--",
        auth_api_key="--API_KEY--",
        auth_api_secret="--API_SECRET--",
    )
)

Env variables

Alternatively, it is possible to use env variables.

The full list of configuration options:

  • XC_BASE_URL (XCoverConfig.base_url): XCover base URL (e.g. https://api.xcover.com/api/v2/).
  • XC_PARTNER_CODE (XCoverConfig.partner_code): Partner code (e.g. LLODT).
  • XC_HTTP_TIMEOUT (XCoverConfig.http_timeout): HTTP timeout in seconds. Default value is 10.
  • XC_AUTH_API_KEY (XCoverConfig.auth_api_key): API key to use.
  • XC_AUTH_API_SECRET (XCoverConfig.auth_api_secret): API secret to use.
  • XC_AUTH_ALGORITHM (XCoverConfig.auth_algorithm): HMAC encoding algorithm to use. Default is hmac-sha512.
  • XC_AUTH_HEADERS (XCoverConfig.auth_headers): Headers to sign. Default is (request-target) date.

Usage example

Using low-level call method

import requests

from xcover.xcover import XCover

# Env variables are used
client = XCover()

# Prepare payload
payload = {
    "request": [
        {
            "policy_type": "event_ticket_protection",
            "policy_type_version": 1,
            "policy_start_date": "2021-12-01T17:59:00.831+00:00",
            "event_datetime": "2021-12-25T21:00:00+00:00",
            "event_name": "Ariana Grande",
            "event_location": "The O2",
            "number_of_tickets": 2,
            "tickets": [
                {"price": 100},
            ],
            "resale_ticket": False,
            "event_country": "GB",
        }
    ],
    "currency": "GBP",
    "customer_country": "GB",
    "customer_region": "London",
    "customer_language": "en",
}
# Calling XCover API
response: requests.Response = client.call(
    method="POST",
    url="partners/LLODT/quotes/",
    payload=payload,
)

quote = response.json()
print(quote)

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

xcover-python-0.1.0.tar.gz (6.8 kB view hashes)

Uploaded Source

Built Distribution

xcover_python-0.1.0-py3-none-any.whl (6.5 kB view hashes)

Uploaded Python 3

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