Bloomerang
=========
********
Overview
********
`Bloomerang `_ is a donor management platform for non-profits. This Parsons integration with
the private `Bloomerang REST API `_
supports fetching, creating, and updating records of constituents, donations, and interactions.
.. note::
Authentication
Authentication credentials can be created by Bloomerang database Administrator User.
There are two authentication options for the private REST API, both of which are
supported by Parsons:
1. Use a private API Key (less secure)
2. Use OAuth2 authentication, requiring a ``client_id`` and ``client_secret`` (more secure)
See the `Bloomerang REST API documentation `_
for more information on API authentication.
**********
Quickstart
**********
To instantiate the Bloomerang class, you can either store your Bloomerang private API key /
OAuth2 credentials as environmental variables (``BLOOMERANG_API_KEY`` for the private
key approach, ``BLOOMERANG_CLIENT_ID`` and ``BLOOMERANG_CLIENT_SECRET`` for the OAuth2
approach) or pass in your API Key / OAuth2 credentials as arguments:
.. code-block:: python
from parsons import Bloomerang
# First approach: Use environmental variables
bloomerang = Bloomerang()
# Second approach: Pass private API key as argument
bloomerang = Bloomerang(api_key='my_key')
# Third approach: Pass OAuth2 client_id and client_secret as arguments
bloomerang = Bloomerang(client_id='my_client_id', client_secret='my_client_secret')
You can then call various endpoints:
.. code-block:: python
# Create constituent
bloomerang.create_constituent(email='john@email', first_name='John', last_name='Smith', city='Boston')
# Get constituent
constituent = bloomerang.get_constituent(user_id='123')
# Update constituent
bloomerang.update_constituent(user_id='123', city='New York')
# Delete constituent
bloomerang.delete_constituent(user_id='123')
***
API
***
.. autoclass :: parsons.Bloomerang
:inherited-members: