Package: bexio-api-python-client
=============================Bexio API Python Client=============================.. image:: https://badge.fury.io/py/bexio-api-python-client.svg:target: https://badge.fury.io/py/bexio-api-python-client.. image:: https://travis-ci.org/oesah/bexio-api-python-client.svg?branch=master:target: https://travis-ci.org/oesah/bexio-api-python-client.. image:: https://codecov.io/gh/oesah/bexio-api-python-client/branch/master/graph/badge.svg:target: https://codecov.io/gh/oesah/bexio-api-python-client.. image:: https://api.codeclimate.com/v1/badges/a3b970ccfc691d06c052/maintainability:target: https://codeclimate.com/github/oesah/bexio-api-python-client/maintainability:alt: MaintainabilityBexio API Python Client. It works as a standalone lib in python, but needsadditional work to get it started. There is a Django integration, that worksout of the box, once you set it up properly as described later. If you wish touse it with Python alone, you can take a look at the Django integration. Itshows how you can use it with python alone.Features--------* API connection to your Bexio instance* Django integration* Creation & Auto-renewal of access tokenDocumentation-------------The full documentation is at https://bexio-api-python-client.readthedocs.io.Quickstart----------Install Bexio API Python Client::pip install bexio-api-python-clientIf you are using anything other than Django with this module, you need towrite some more code to authenticate and use the API. Check out the Djangoparts of the module to see how it can be done.Django Integration------------------You can use the API directly with Django. There are URLs, Views and otherhelpers to integrate the API into your Django project.Add it to your :code:`INSTALLED_APPS`:.. code-block:: pythonINSTALLED_APPS = (...'bexiopy.apps.BexiopyConfig',...)Add Bexio API Python Client's URL patterns to your main :code:`urls.py`:.. code-block:: pythonfrom bexiopy import urls as bexiopy_urlsurlpatterns = [...url(r'bexiopy/', include('bexiopy.urls', namespace='bexiopy')),...]Start your server and visit the homepage (e.g. :code:`localhost:8000`).You should see a navigation bar at the top where you can click on "Authenticate"to create your token. Afterwards, you should see some data on the front page,if you have any data in your Bexio instance.Docker------If you use docker, you can configure a volume to store the token:Example:.. code-block:: yaml# docker-compose.ymlvolumes:bexio_token: {}services:app:volumes:- bexio_token:/app/secrets# app/Dockerfile...RUN mkdir /app/secrets...Basic Usage-----------See docs for basic usage: https://bexio-api-python-client.readthedocs.io/en/latest/bexiopy.html#bexiopy.api.ClientYou can also use helper functions, so you don't need to create the :code:`call` every time (see docs).These helper functions are added over time, but you can use the API fully, with the`call` function. The helper methods only offer nicer ways to query the API (e.g. :code:`Bexiopy().contacts.get(2)`).The progress of the helper functions are documented below under "Progress".Settings--------Configure the minimum :code:`settings.py` (check docs for all options):.. code-block:: pythonBEXIO_CLIENT_SECRET = 'my_secret'BEXIO_CLIENT_ID = 'my_id'BEXIO_APPLICATION_SCOPES = ['my_scope_1', 'my_scope_2']BEXIO_APPLICATION_REDIRECTION_URL = 'https://example.com'Start the server and go to :code:`/bexiopy/auth/` and authenticate with Bexio.**i18n URLs**If you have internationalized URLs, then make sure you place the Bexiopyurl outside the internationalized ones, so it can be called without anylanguage code (:code:`/bexiopy/auth/` instead of :code:`/en/bexiopy/auth/`).Running Tests-------------Does the code actually work?::source <YOURVIRTUALENV>/bin/activate(myenv) $ pip install tox(myenv) $ toxCredits-------Tools and libs used in creating this package:*  Cookiecutter_*  `cookiecutter-djangopackage`_*  `Christian Ruhstaller (bexio-api-php-client)`_.. _Cookiecutter: https://github.com/audreyr/cookiecutter.. _`cookiecutter-djangopackage`: https://github.com/pydanny/cookiecutter-djangopackage.. _`Christian Ruhstaller (bexio-api-php-client)`: https://github.com/christianruhstaller/bexio-api-php-clientProgress--------[ ] = Open[~] = In Progress[X] = Done[-] = Not possible / IgnoredContacts^^^^^^^^Contacts========* [X] List contacts* [X] Search contacts* [X] Show contact* [X] Create contact* [X] Overwrite contact* [X] Edit contact* [X] Delete contact* [ ] Bulk create contactSalutations===========* [ ] List salutations* [ ] Search salutations* [ ] Show salutation* [ ] Create salutation* [ ] Overwrite salutation* [ ] Edit salutation* [ ] Delete salutationTitles======* [ ] List titles* [ ] Search titles* [ ] Show title* [ ] Create title* [ ] Overwrite title* [ ] Edit title* [ ] Delete titleInvoices^^^^^^^^* [X] List invoices* [X] Search invoices* [X] Show invoice* [X] Create invoice* [X] Overwrite invoice* [X] Edit invoice* [X] Delete invoice* [X] Show invoice pdf* [X] Copy invoice* [ ] Issue invoice* [ ] Mark invoice as sent* [ ] Send invoice* [ ] List comments* [ ] Search comments* [ ] Show comment* [ ] Create comment* [-] List payments* [-] Show payments* [-] Create payments* [-] Delete paymentsHistory-------0.1.5 (2017-10-23)++++++++++++++++++* added suport for Python 3.6* changed logic, so that you can visit the index page without having a token yet0.1.0 (2017-10-23)++++++++++++++++++* First release on PyPI.