{ "info": { "author": "", "author_email": "", "bugtrack_url": null, "classifiers": [ "Development Status :: 3 - Alpha", "Intended Audience :: Developers", "Programming Language :: Python :: 2", "Programming Language :: Python :: 2.6", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.3", "Programming Language :: Python :: 3.4", "Programming Language :: Python :: 3.5" ], "description": "Concur API SDK\n===============\nThe Concur API SDK is a Python client library designed to support Concur's Developer APIs.\nYou can read more about the Official API by accessing its `official documentation `_.\n\nSystem Requirements\n--------------------\n\nConcur API SDK depends on the following Python libraries:\n\n* requests\n\nInstallation\n------------\nInstall using `pip`:\n\n::\n\n pip install concurapi.\n\n\nConfiguration\n--------------\nYou'll need to register at `Concur's Administration site `_.\nBefore you create a partner application, make sure your user account has web service administrator access.\nYou can create a partner application by following these steps.\n\n* Log on to Concur's Administration using your username and password\n\n* Follow the links *Administration* -> *Company* -> *Web Services*\n\n* Click on the link to register a partner application in the left navigation bar.\n\n* In the next screen click on the **New** button to create a new application\n\n* In the modal dialog, you can choose the permissions for the actions you need to automate.\n\nAlso, please note the system generated **Key** and **Secret**. These values are used by the sdk to make a call\nto Concur's API.\n\n\nUsage\n-----\nBefore you use the sdk, you'll need to register a partner application and retrieve a Key/Secret. Please see Configuration_.\nYou'll also need to install the client sdk using ``pip``. Please see `System Requirements`_ and Installation_.\n\n.. code-block:: python\n\n from concurapi.client import ConcurAPI\n from concurapi.models import Report\n api = ConcurAPI(client_key=\"Kq4qIqR3K3zgOJwdI2KLtQ\",\n client_secret=\"Kq4qIqR3K3zgOJwdI2KLtQ\",\n username=\"concuruser@xyz.com\",\n password=\"johndoe\")\n report = Report(attributes=dict(Name=\"First Report\",\n Description=\"Report for a new Expense\"), api=api)\n report.create()\n get_report = Report.find(report['ID'])\n\n\nIf the service is not available, the sdk throws a ``ServiceNotAvailable`` exception which can be handled like so:\n\n.. code-block:: python\n\n from concurapi.client import ConcurAPI\n from concurapi.exceptions import ServiceNotAvailable\n import sys\n try:\n api = ConcurAPI(client_key=\"Kq4qIqR3K3zgOJwdI2KLtQ\",\n client_secret=\"Kq4qIqR3K3zgOJwdI2KLtQ\",\n username=\"concuruser@xyz.com\",\n password=\"johndoe\")\n except ServiceNotAvailable as se:\n #handle ServiceNotAvailable exception\n sys.exit(se.message)\n\n\nThe sdk returns ``HTTPException`` when there is a REST exception from the API.\nAs an example, if a report with id - ``12345-abcde`` is not available, the service returns a ``404`` HTTP Exception\n\n.. code-block:: python\n\n from concurapi.client import ConcurAPI\n from concurapi.exceptions import HTTPException\n from concurapi.models import Report\n import sys\n try:\n api = ConcurAPI(client_key=\"Kq4qIqR3K3zgOJwdI2KLtQ\",\n client_secret=\"Kq4qIqR3K3zgOJwdI2KLtQ\",\n username=\"concuruser@xyz.com\",\n password=\"johndoe\")\n Report.find(\"1234-abcde\")\n\n except HTTPException as he:\n #handle HTTPException exception\n sys.exit(he.message)\n\n\nContributions\n-------------\nContributions are welcome! Please open a pull request.", "description_content_type": null, "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "", "keywords": "concur api development", "license": "", "maintainer": "", "maintainer_email": "", "name": "concurapi", "package_url": "https://pypi.org/project/concurapi/", "platform": "", "project_url": "https://pypi.org/project/concurapi/", "project_urls": null, "release_url": "https://pypi.org/project/concurapi/0.0.2.1/", "requires_dist": null, "requires_python": "", "summary": "Concur API Project", "version": "0.0.2.1" }, "last_serial": 2932030, "releases": { "0.0.1": [ { "comment_text": "", "digests": { "md5": "2f68afaa3a365dad9970491d9551a793", "sha256": "6e7a9a1d0593c1770067b3b67973f9ae8a0be175833e96271e1c8ce81297e003" }, "downloads": -1, "filename": "concurapi-0.0.1-py2.7.egg", "has_sig": false, "md5_digest": "2f68afaa3a365dad9970491d9551a793", "packagetype": "bdist_egg", "python_version": "2.7", "requires_python": null, "size": 14317, "upload_time": "2017-02-08T13:42:31", "url": "https://files.pythonhosted.org/packages/77/71/56510788644357aba2106cab6677547d5bacda779f330f8225c7ba3d7f14/concurapi-0.0.1-py2.7.egg" }, { "comment_text": "", "digests": { "md5": "b5af36fe8564b1bb7e1d20adf5b6f047", "sha256": "6a94e3f96a1da914b36b5c60b90ed2150bb4a83e85576aa6207a280dd816707e" }, "downloads": -1, "filename": "concurapi-0.0.1.tar.gz", "has_sig": false, "md5_digest": "b5af36fe8564b1bb7e1d20adf5b6f047", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 1008, "upload_time": "2017-02-06T09:15:52", "url": "https://files.pythonhosted.org/packages/c6/ac/edd9d78d8cc0167c9ad5fda3670a1cb061bb40efc6cea18df51e534eb43c/concurapi-0.0.1.tar.gz" } ], "0.0.2": [ { "comment_text": "", "digests": { "md5": "015de2297bc2ca98947b8fcef441f368", "sha256": "1f79d87e8fa07afdc6e7645746fe475b53fc246d670672e9db84d9aa96a2b8df" }, "downloads": -1, "filename": "concurapi-0.0.2-py2.7.egg", "has_sig": false, "md5_digest": "015de2297bc2ca98947b8fcef441f368", "packagetype": "bdist_egg", "python_version": "2.7", "requires_python": null, "size": 14318, "upload_time": "2017-02-08T13:44:31", "url": "https://files.pythonhosted.org/packages/6b/44/b01e2c44fc0817295893e18c0cd3f110ed9e22c88c2a18dc71c8a79e0d3c/concurapi-0.0.2-py2.7.egg" }, { "comment_text": "", "digests": { "md5": "658b05a146ed862bffe746b9c7ed9f0d", "sha256": "c821ebfb45490f0bc45ca93eeecdaca18edd2e1aa35d55d3c6bcec6662069dc3" }, "downloads": -1, "filename": "concurapi-0.0.2.tar.gz", "has_sig": false, "md5_digest": "658b05a146ed862bffe746b9c7ed9f0d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4973, "upload_time": "2017-02-08T13:44:34", "url": "https://files.pythonhosted.org/packages/87/95/02f99fbf7acc1126f37af0dbcafd538199e8f09ba590b07a7423509cc4fe/concurapi-0.0.2.tar.gz" } ], "0.0.2.1": [ { "comment_text": "", "digests": { "md5": "678d6de549918bde811b6541ae1a94ba", "sha256": "4b8b53238f1005acd93867c2387609e5d0ee45c3548687ded87ec5ecccacd79f" }, "downloads": -1, "filename": "concurapi-0.0.2.1.tar.gz", "has_sig": false, "md5_digest": "678d6de549918bde811b6541ae1a94ba", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6004, "upload_time": "2017-06-07T12:26:33", "url": "https://files.pythonhosted.org/packages/f1/29/48e4ee1e7c2ae4dbfe17446b3f814ffe10ca517fac31b27793d0593d1e6f/concurapi-0.0.2.1.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "678d6de549918bde811b6541ae1a94ba", "sha256": "4b8b53238f1005acd93867c2387609e5d0ee45c3548687ded87ec5ecccacd79f" }, "downloads": -1, "filename": "concurapi-0.0.2.1.tar.gz", "has_sig": false, "md5_digest": "678d6de549918bde811b6541ae1a94ba", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6004, "upload_time": "2017-06-07T12:26:33", "url": "https://files.pythonhosted.org/packages/f1/29/48e4ee1e7c2ae4dbfe17446b3f814ffe10ca517fac31b27793d0593d1e6f/concurapi-0.0.2.1.tar.gz" } ] }