roscamaxim / xcover-python

xcover-python is an API client for XCover

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

· 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)

About

xcover-python is an API client for XCover


Languages

Language:Python 99.2%Language:Shell 0.8%