# thepeer
A 3rd party developer friendly python client package for [thepeer](https://thepeer.co/)
## installation
`pip install thepeer`
## usage
Future versions of this package will provide a much better documentation. This
version was published to claim the package namespace. however, the package is quite
functional as is. First of, you want to import the client
```python
from thepeer import ThePeerClient, ChargeEvent, PaymentChannel
client = ThePeerClient(secret_key="<secret_key>") # you can omit the secret key param if
# the environmental variable THEPEER_SECRET_KEY is set.
response = client.users.all() # Fetch all indexed users.
print(response)
response = client.transactions.get("<transaction_id>") # Fetch a transaction.
print(response)
response = client.links.get_user_links("<user_reference>") # Fetch all linked accounts of a user.
print(response)
response = client.authorize_charge("<charge_reference>",
event=ChargeEvent.INSUFFICIENT_FUNDS) # Process a charge authorization request.
print(response)
response = client.generate_checkout(amount=10000, email="johndoe@example.com") # Generate a checkout.
print(response)
response = client.get_businesses(
channel=PaymentChannel.DIRECT_CHARGE) # Fetch businesses based on the API they integrated.
print(response)
```
`ThePeerClient` has three attributes bound to it `users` for user related operations,
`transactions` for transaction related operations and `links` for link related operations.
It also provides additional methods `authorize_charge`, `generate_checkout` and `get_businessses`.
All methods on the client returns a `Response` with is a dataclass containing the `status_code`
and `data` returned from thepeer. This package also provides an async client which mirrors this
client and can come in handy in async context
```python
# note the following code should be tested in an async context to work
# e.g. `python -m asynio`
from thepeer import AsyncThePeerClient
client = AsyncThePeerClient(secret_key="<secret_key>") # you can omit the secret key param if
# the environmental variable THEPEER_SECRET_KEY is set.
response = await client.users.all() # Notice that the `all` method is identical to that
# on the `ThePeerClient` except that we had to await it here.
print(response)
```
All methods are type annotated and also provide docstrings for a smooth developer experience.
I hope you find this package useful.
## source code
- [https://github.com/gray-adeyi/thepeer](https://github.com/gray-adeyi/thepeer)
## license
- MIT
Raw data
{
"_id": null,
"home_page": "https://github.com/gray-adeyi/thepeer",
"name": "thepeer",
"maintainer": "Gbenga Adeyi",
"docs_url": null,
"requires_python": ">=3.9,<4.0",
"maintainer_email": "adeyigbenga005@gmail.com",
"keywords": "thepeer,api wrapper",
"author": "Gbenga Adeyi",
"author_email": "adeyigbenga005@gmail.com",
"download_url": "https://files.pythonhosted.org/packages/46/98/e4b73b801b86e165c14fd9cec69ca1192a9280096610864b9ec18bd053b7/thepeer-0.1.0.tar.gz",
"platform": null,
"description": "# thepeer\nA 3rd party developer friendly python client package for [thepeer](https://thepeer.co/)\n\n## installation\n`pip install thepeer`\n\n## usage\nFuture versions of this package will provide a much better documentation. This\nversion was published to claim the package namespace. however, the package is quite\nfunctional as is. First of, you want to import the client\n```python\n\nfrom thepeer import ThePeerClient, ChargeEvent, PaymentChannel\nclient = ThePeerClient(secret_key=\"<secret_key>\") # you can omit the secret key param if\n# the environmental variable THEPEER_SECRET_KEY is set.\nresponse = client.users.all() # Fetch all indexed users.\nprint(response)\n\nresponse = client.transactions.get(\"<transaction_id>\") # Fetch a transaction.\nprint(response)\n\nresponse = client.links.get_user_links(\"<user_reference>\") # Fetch all linked accounts of a user.\nprint(response)\n\nresponse = client.authorize_charge(\"<charge_reference>\", \n event=ChargeEvent.INSUFFICIENT_FUNDS) # Process a charge authorization request.\nprint(response)\n\nresponse = client.generate_checkout(amount=10000, email=\"johndoe@example.com\") # Generate a checkout.\nprint(response)\n\nresponse = client.get_businesses(\n channel=PaymentChannel.DIRECT_CHARGE) # Fetch businesses based on the API they integrated.\nprint(response)\n```\n`ThePeerClient` has three attributes bound to it `users` for user related operations,\n`transactions` for transaction related operations and `links` for link related operations.\nIt also provides additional methods `authorize_charge`, `generate_checkout` and `get_businessses`.\nAll methods on the client returns a `Response` with is a dataclass containing the `status_code`\nand `data` returned from thepeer. This package also provides an async client which mirrors this\nclient and can come in handy in async context\n```python\n# note the following code should be tested in an async context to work\n# e.g. `python -m asynio`\nfrom thepeer import AsyncThePeerClient\n\nclient = AsyncThePeerClient(secret_key=\"<secret_key>\") # you can omit the secret key param if\n# the environmental variable THEPEER_SECRET_KEY is set.\nresponse = await client.users.all() # Notice that the `all` method is identical to that\n# on the `ThePeerClient` except that we had to await it here.\nprint(response)\n```\nAll methods are type annotated and also provide docstrings for a smooth developer experience.\nI hope you find this package useful.\n\n## source code\n\n- [https://github.com/gray-adeyi/thepeer](https://github.com/gray-adeyi/thepeer)\n\n## license\n\n- MIT",
"bugtrack_url": null,
"license": "MIT",
"summary": "A 3rd party developer friendly client package for thepeer",
"version": "0.1.0",
"project_urls": {
"Homepage": "https://github.com/gray-adeyi/thepeer",
"Repository": "https://github.com/gray-adeyi/thepeer"
},
"split_keywords": [
"thepeer",
"api wrapper"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "848a3b0dc3b99655b99dedbf306ffd1795a8ca6e493073ee08bf778915a9c20a",
"md5": "60ca5e4d1c4ff0fcb6e612a7347e2e66",
"sha256": "a8d949f2097e9049eea97feb3240d5c471d5a9c485e0a1a1b1aeebdd2d82d334"
},
"downloads": -1,
"filename": "thepeer-0.1.0-py3-none-any.whl",
"has_sig": false,
"md5_digest": "60ca5e4d1c4ff0fcb6e612a7347e2e66",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.9,<4.0",
"size": 9787,
"upload_time": "2023-09-26T12:51:20",
"upload_time_iso_8601": "2023-09-26T12:51:20.425607Z",
"url": "https://files.pythonhosted.org/packages/84/8a/3b0dc3b99655b99dedbf306ffd1795a8ca6e493073ee08bf778915a9c20a/thepeer-0.1.0-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "4698e4b73b801b86e165c14fd9cec69ca1192a9280096610864b9ec18bd053b7",
"md5": "b3fa15287a7b0fcd9b8a4bd57d03a174",
"sha256": "2da251d8a81ae1021514e562cb12189e465948cdb038851cd36a96e421b40043"
},
"downloads": -1,
"filename": "thepeer-0.1.0.tar.gz",
"has_sig": false,
"md5_digest": "b3fa15287a7b0fcd9b8a4bd57d03a174",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.9,<4.0",
"size": 7409,
"upload_time": "2023-09-26T12:51:23",
"upload_time_iso_8601": "2023-09-26T12:51:23.294268Z",
"url": "https://files.pythonhosted.org/packages/46/98/e4b73b801b86e165c14fd9cec69ca1192a9280096610864b9ec18bd053b7/thepeer-0.1.0.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2023-09-26 12:51:23",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "gray-adeyi",
"github_project": "thepeer",
"travis_ci": false,
"coveralls": false,
"github_actions": false,
"lcname": "thepeer"
}