PeachPayments Partner Pydantic library contains Pydantic schemas to help integrate PeachPayments with their partners.
Reason this release was yanked:
0.1.10 is yanked because of a problematic change
Project description
PeachPayments Partner Pydantic Library
Overview
PeachPayments Partner Pydantic Library is a platform-agnostic Python package to help Payment Service Providers in integrating with PeachPayments. This library provides functionality to validate request and response data using Pydantic Python library.
Source Code: https://gitlab.com/peachpayments/peach-partner-pydantic/
Key terms
Term | Definition |
---|---|
Partner API | A service provided by Peach Payments to enable Payment Service Providers to become available on the Peach Platform |
Payment Service Provider | A payment service provider who integrates with the Partner API |
Outbound API call | API calls sent from Partner API to the Payment Service Provider |
Inbound API call | API calls sent from Payment Service Provider to Partner API |
Usage
Package requires Python 3.9+
Installation
# pip
$ pip3 install peachpayments-partner-pydantic
# poetry
$ poetry add peachpayments-partner-pydantic
Field validation
Scenario: Payment Service Provider written in FastAPI receives a debit request from PeachPayments.
# ... imports
from peachpayments_partner_pydantic.schemas import DebitRequest, DebitResponse
@router.post(
"/v1/debit",
response_model=schemas.DebitResponse,
)
def debit_request(
*, debit_in: schemas.DebitRequest
) -> Any:
# Store the transaction
transaction = Transaction.create_from_debit(debit_in)
# Validate the debit response
debit_response = DebitResponse(**transaction.to_debit_response_fields())
return debit_response.dict()
Translating exception to PeachPayments error response
Scenario: Payment Service Provider written in FastAPI receives a request with a validation error from PeachPayments.
1. Write validation exception handler
# app/exception_handlers.py
from fastapi import Request, status
from fastapi.exceptions import RequestValidationError
from fastapi.responses import JSONResponse
from peachpayments_partner_pydantic.exception_handlers import exception_to_response
async def validation_exception_handler(request: Request, exc: RequestValidationError) -> JSONResponse:
return JSONResponse(status_code=status.HTTP_400_BAD_REQUEST, content=exception_to_response(exc))
2. Connect it to the application
# app/main.py
from fastapi import FastAPI
from fastapi.exceptions import RequestValidationError
from app.exception_handlers import validation_exception_handler
application = FastAPI(
exception_handlers={RequestValidationError: validation_exception_handler},
)
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for peachpayments-partner-pydantic-0.2.0.tar.gz
Algorithm | Hash digest | |
---|---|---|
SHA256 | 42dd8aa14c38cbb91af5149a211e4ea867998dfa3302b5454551fbe33d35055d |
|
MD5 | 21e74b2c548d8706cb1ce1c6d58efaf1 |
|
BLAKE2b-256 | 5ef071cbac20b3254c182ad0c8b2f1619908958f6900ad2dfa0b83ce619daafe |
Hashes for peachpayments_partner_pydantic-0.2.0-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 0182be62668860967d3d5a5ccd8ed755ef75f0111867e396cdbe12b10388b539 |
|
MD5 | 7e1726a23b6024cd043a302fac7991fc |
|
BLAKE2b-256 | 6dbed106c395e674bbbdd8fceee969b16d5eb1430107add54d85c3faa0c1460a |