Tahrir-API
API for interacting with the Tahrir database. Based on the Tahrir <https://github.com/fedora-infra/tahrir>
_ database model written by Ralph Bean <https://github.com/ralphbean>
_. There are two classes that can be used
in this module. The first is the TahrirDatabase
class located in
tahrir_api.dbapi
and the second is the database model located in
tahrir_api.model
. The TahrirDatabase
class is a high level way to
interact with the database. The model is used for a slightly more low level way
of interacting with the database. It allows for custom interactions with the
database without having to use the TahrirDatabase
class.
Creating a Badge
This is an example of creating a badge via Tahrir-API:
.. code-block:: python
from tahrir_api.dbapi import TahrirDatabase
db = TahrirDatabase('backend://badges:badgesareawesome@localhost/badges')
origin = 'http://foss.rit.edu/badges'
issuer_name = 'FOSS@RIT'
org = 'http://foss.rit.edu'
contact = 'foss@rit.edu'
issuer_id = db.add_issuer(origin, issuer_name, org, contact)
badge_name = 'fossbox'
image = 'http://foss.rit.edu/files/fossboxbadge.png'
desc = 'Welcome to the FOSSBox. A member is you!'
criteria = 'http://foss.rit.edu'
db.add_badge(badge_name, image, desc, criteria, issuer_id)
Awarding a Badge
This is an example of awarding a badge via Tahrir-API:
.. code-block:: python
from tahrir_api.dbapi import TahrirDatabase
db = TahrirDatabase('backend://badges:badgesareawesome@localhost/badges')
badge_id = 'fossbox'
person_email = 'person@email.com'
issued_on = None
db.add_person(person_email)
db.add_assertion(badge_id, person_email, issued_on)
Development
Set-up your env
Install helper
.. code-block:: bash
$ sudo dnf install -y python3-virtualenvwrapper # RedHat-based OS
Build your virtual env
.. code-block:: bash
$ export WORKON_HOME=$HOME/.virtualenvs
$ mkvirtualenv tahrir-api
Connect w/ your virutal env
.. code-block:: bash
$ workon tahrir-api
(tahrir-api)$
Install
Requirements
.. code-block:: bash
(tahrir-api)$ pip install -r requirements.txt
Project installation
.. code-block:: bash
(tahrir-api)$ python setup.py develop
Happy hacking!
Run the tests
You can run the tests with tox
.. code-block:: bash
(tahrir-api)$ pip install tox
(tahrir-api)$ tox