{
"info": {
"author": "Daniel Nibon",
"author_email": "daniel@nibon.se",
"bugtrack_url": null,
"classifiers": [
"Development Status :: 4 - Beta",
"Intended Audience :: Developers",
"Natural Language :: English",
"Programming Language :: Python :: 2.7",
"Programming Language :: Python :: 3.4"
],
"description": "Solve360 API Python wrapper\n===========================\n\nPython wrapper for `Norada CRM Solve360 `__ API.\n\nSolve360 API Documentation\n--------------------------\n\nhttp://norada.com/answers/api/external\\_api\\_introduction\n\nInstallation\n------------\n\n::\n\n $ pip install solve360\n\nUsage\n-----\n\nThe API methods and parameters are the same for all record types, i.e.\nContacts, Companies and Project Blogs. Simply use the appropriate\nsegment name for the record type. For example, if creating a:\n\n- Contact - Use crm.create\\_contact()\n- Company - Use crm.create\\_company()\n- Projectblog - Use crm.create\\_projectblog()\n\nInitiate solve360 object\n~~~~~~~~~~~~~~~~~~~~~~~~\n\n::\n\n >>> from solve360 import Solve360\n >>> crm = Solve360(your_email, your_token)\n\nList contacts\n~~~~~~~~~~~~~\n\n::\n\n >>> crm.list_contacts()\n {u'status': 'success',\n u'count': 2,\n u'12345': {...},\n u'12346': {...}}\n\n`Reference `__\n\nGet contacts - paginated\n~~~~~~~~~~~~~~~~~~~~~~~~\n\nThe solve360 API have a fixed upper limit on objects each list request\nwill return, currently set to 5000. To fetch more objects in a single\nrequest this wrapper offers a parameter ``pages``. The request will\ncontinue to fetch objects until either all objects are returned or the\nnumber of given pages have been reached.\n\n::\n\n >>> contacts = crm.list_contacts(limit=solve360.LIST_MAX_LIMIT, pages=2)\n >>> contacts\n {u'status': 'success',\n u'count': 12000,\n u'12345': {...},\n u'12346': {...}, \n ...}\n >>> len(contacts)\n 10002 # Keys 'status' and 'count' plus 10000 contacts \n\nParameter ``pages`` must be a positive number. There is currently no\nparameter that fetches all objects available disregard how many there is\ntotally. Just set ``pages`` to a number high enough to include the\nnumber of objects required.\n\nShow contact\n~~~~~~~~~~~~\n\n::\n\n >>> crm.show_contact(12345)\n {u'status': 'success',\n u'id': 12345,\n u'fields': {...},\n ...}\n\n`Reference `__\n\nCreate contact\n~~~~~~~~~~~~~~\n\n::\n\n >>> crm.create_contact({'firstname': 'test', 'lastname': 'creation'})\n {'status': 'success',\n 'item': {'id': 12347, ...},\n ...}\n\n`Reference `__\n\nUpdate contact\n~~~~~~~~~~~~~~\n\n::\n\n >>> crm.update_contact(12345, {'firstname': 'updated', 'lastname': 'name'})\n {'status': 'success',\n 'item': {'id': 12345, ...},\n ...}\n\n`Reference `__\n\nDestroy contact\n~~~~~~~~~~~~~~~\n\n::\n\n >>> crm.destroy_contact(12345)\n {'status': 'success'}\n\n`Reference `__\n\nShow report activities\n~~~~~~~~~~~~~~~~~~~~~~\n\n::\n\n >>> crm.show_report_activities('2014-03-05', '2014-03-11')\n {u'status': 'success', \n u'66326826': {u'comments': [],\n u'created': u'2014-03-05T08:48:07+00:00',\n u'fields': {u'assignedto': u'88842777',\n u'assignedto_cn': u'John Doe',\n u'completed': u'0',\n u'duedate': u'2014-03-07T00:00:00+00:00',\n u'priority': u'0',\n u'remindtime': u'0',\n ...}, \n ...\n }\n\n`Reference `__\n\nError handling\n--------------\n\nSuccessful requests with ``response.status_code == 2XX`` will parse the\njson response body and only return the response data in python data\nformat.\n\nInvalid requests with ``response.status_code == 4XX or 5XX`` will raise\nan ``requests.HTTPException`` using requests ``raise_for_status()``\nreturning the complete stacktrace including server error message if\navailable.\n\nTest\n----\n\n::\n\n $ pip install pytest httpretty\n $ py.test solve360/tests.py\n\nDependencies\n------------\n\n- `requests `__\n- `iso8601 `__\n\nTesting\n~~~~~~~\n\n- `pytest `__\n- `httpretty `__",
"description_content_type": null,
"docs_url": null,
"download_url": null,
"downloads": {
"last_day": -1,
"last_month": -1,
"last_week": -1
},
"home_page": "https://github.com/nibon/solve360",
"keywords": "norada solve360 api wrapper",
"license": "The MIT Licence",
"maintainer": null,
"maintainer_email": null,
"name": "solve360",
"package_url": "https://pypi.org/project/solve360/",
"platform": "UNKNOWN",
"project_url": "https://pypi.org/project/solve360/",
"project_urls": {
"Homepage": "https://github.com/nibon/solve360"
},
"release_url": "https://pypi.org/project/solve360/0.9.2/",
"requires_dist": [
"requests (>=1.0.0)",
"iso8601 (>=0.1.10)"
],
"requires_python": null,
"summary": "Solve360 API Python wrapper",
"version": "0.9.2"
},
"last_serial": 1343424,
"releases": {
"0.9.0": [
{
"comment_text": "",
"digests": {
"md5": "2c98e0869479e4cf4e280640ea9811af",
"sha256": "1ea11ce04d1d426d2263366a4e38cbe5f2f97ba983f7711ef03a604032883f8a"
},
"downloads": -1,
"filename": "solve360-0.9.0.tar.gz",
"has_sig": false,
"md5_digest": "2c98e0869479e4cf4e280640ea9811af",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 8561,
"upload_time": "2014-03-15T18:05:46",
"url": "https://files.pythonhosted.org/packages/9c/de/7369b01b511b0004d5f010960463aece978be1dfab507ef1ba83e206c732/solve360-0.9.0.tar.gz"
}
],
"0.9.1": [
{
"comment_text": "",
"digests": {
"md5": "7203eb1a8caf086f15641513a7d49941",
"sha256": "b04953f846d6b831f3f281ea7860c380a9d870810a87ea1ff0f9058545358410"
},
"downloads": -1,
"filename": "solve360-0.9.1.tar.gz",
"has_sig": false,
"md5_digest": "7203eb1a8caf086f15641513a7d49941",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 9777,
"upload_time": "2014-08-09T14:07:25",
"url": "https://files.pythonhosted.org/packages/af/26/b3a3dd77093f1497434d9d33840732705abbe740ab2d514ebec462e28cf7/solve360-0.9.1.tar.gz"
}
],
"0.9.2": [
{
"comment_text": "",
"digests": {
"md5": "a5d68ca5a261e55f8ee3475e2889c6b2",
"sha256": "7a76ccb419e267e9843605b9b0272ce7eac68afc2181ea166e4cf3659dab0950"
},
"downloads": -1,
"filename": "solve360-0.9.2-py2.py3-none-any.whl",
"has_sig": false,
"md5_digest": "a5d68ca5a261e55f8ee3475e2889c6b2",
"packagetype": "bdist_wheel",
"python_version": "py2.py3",
"requires_python": null,
"size": 12347,
"upload_time": "2014-12-14T18:53:22",
"url": "https://files.pythonhosted.org/packages/9f/0c/60d2e1e948c70c59b2e1ec1323b4af4a8eca217248eb16153f60d8472666/solve360-0.9.2-py2.py3-none-any.whl"
},
{
"comment_text": "",
"digests": {
"md5": "9a89f5117b56898a3b128a9291c10ba3",
"sha256": "1097dc662215182836d0440ec2f32feb5bf164233ddf272fd32533bb1abc4a9e"
},
"downloads": -1,
"filename": "solve360-0.9.2.tar.gz",
"has_sig": false,
"md5_digest": "9a89f5117b56898a3b128a9291c10ba3",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 9660,
"upload_time": "2014-12-14T18:53:26",
"url": "https://files.pythonhosted.org/packages/c2/62/3c5dee50c30cc4ca9c0f79c6e1691f47a913be370f7529eb43f920b5908b/solve360-0.9.2.tar.gz"
}
]
},
"urls": [
{
"comment_text": "",
"digests": {
"md5": "a5d68ca5a261e55f8ee3475e2889c6b2",
"sha256": "7a76ccb419e267e9843605b9b0272ce7eac68afc2181ea166e4cf3659dab0950"
},
"downloads": -1,
"filename": "solve360-0.9.2-py2.py3-none-any.whl",
"has_sig": false,
"md5_digest": "a5d68ca5a261e55f8ee3475e2889c6b2",
"packagetype": "bdist_wheel",
"python_version": "py2.py3",
"requires_python": null,
"size": 12347,
"upload_time": "2014-12-14T18:53:22",
"url": "https://files.pythonhosted.org/packages/9f/0c/60d2e1e948c70c59b2e1ec1323b4af4a8eca217248eb16153f60d8472666/solve360-0.9.2-py2.py3-none-any.whl"
},
{
"comment_text": "",
"digests": {
"md5": "9a89f5117b56898a3b128a9291c10ba3",
"sha256": "1097dc662215182836d0440ec2f32feb5bf164233ddf272fd32533bb1abc4a9e"
},
"downloads": -1,
"filename": "solve360-0.9.2.tar.gz",
"has_sig": false,
"md5_digest": "9a89f5117b56898a3b128a9291c10ba3",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 9660,
"upload_time": "2014-12-14T18:53:26",
"url": "https://files.pythonhosted.org/packages/c2/62/3c5dee50c30cc4ca9c0f79c6e1691f47a913be370f7529eb43f920b5908b/solve360-0.9.2.tar.gz"
}
]
}