API for interacting with the Tahrir database
Go to file
renovate[bot] 2a7b1a04f4 Update pre-commit hook charliermarsh/ruff-pre-commit to v0.4.4
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-05-13 03:29:39 +00:00
.github Fix the github action to trigger on tags 2024-04-22 17:39:48 +02:00
examples Use sqlalchemy-helpers 2024-04-16 08:48:21 +02:00
tahrir_api Minor formatting changes to match other apps 2024-04-16 16:34:09 +02:00
tests Minor formatting changes to match other apps 2024-04-16 16:34:09 +02:00
.gitignore Add a few step to start hack on the project in development section README 2019-08-12 21:55:35 +02:00
.pre-commit-config.yaml Update pre-commit hook charliermarsh/ruff-pre-commit to v0.4.4 2024-05-13 03:29:39 +00:00
CHANGELOG.rst Version 1.0.0 2024-04-16 16:55:39 +02:00
LICENSE Relicense to GPLv3+. Fixes #7. 2013-04-24 12:34:03 -04:00
README.rst Add a few step to start hack on the project in development section README 2019-08-12 21:55:35 +02:00
get-changelog-block.sh Add a script to generate the changelog block 2024-04-16 16:53:30 +02:00
poetry.lock Update dependencies in lockfile 2024-04-22 17:39:48 +02:00
pyproject.toml Typo 2024-04-22 17:39:48 +02:00
tox.ini Fix issues with pyproject and tox.ini 2024-04-11 11:36:52 +02:00

README.rst

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