{ "info": { "author": "Student.com", "author_email": "wearehiring@student.com", "bugtrack_url": null, "classifiers": [ "Intended Audience :: Developers", "Operating System :: MacOS :: MacOS X", "Operating System :: POSIX", "Programming Language :: Python", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.4", "Programming Language :: Python :: 3.5", "Programming Language :: Python :: 3.6", "Topic :: Internet", "Topic :: Software Development :: Libraries :: Python Modules" ], "description": ".. image:: https://travis-ci.org/Overseas-Student-Living/nameko-salesforce.svg?branch=extract-from-internal-salesforce-lib\n :target: https://travis-ci.org/Overseas-Student-Living/nameko-salesforce\n\n\nNameko Salesforce\n=================\n\nA `Nameko`_ extension with entrypoints for handling `Salesforce Streaming API`_ events\nand a dependency provider for easy communication with `Salesforce REST API`_.\n\nThe Streaming API extension is based on `Nameko Cometd Bayeux Client`_ and the REST API dependency\nid based on `Simple Salesforce`_.\n\n.. _Nameko: http://nameko.readthedocs.org\n\n.. _Salesforce Streaming API:\n https://developer.salesforce.com/docs/atlas.en-us.api_streaming.meta/api_streaming/intro_stream.htm\n\n.. _Salesforce REST API:\n https://developer.salesforce.com/docs/atlas.en-us.api_rest.meta/api_rest/intro_what_is_rest_api.htm\n\n.. _Nameko Cometd Bayeux Client:\n https://github.com/Overseas-Student-Living/nameko-bayeux-client\n\n.. _Simple Salesforce:\n https://github.com/simple-salesforce/simple-salesforce\n\n\nQuick Start\n-----------\n\nInstall from `PyPI`_::\n\n pip install nameko-salesforce\n\n.. _PyPI: https://pypi.python.org/pypi/nameko-salesforce\n\n\nCreate a service which handles Salesforce Contact objects changes and also\nhas an RPC endpoint for creating new Contact objects in Salesforce:\n\n.. code-block:: python\n\n # service.py\n\n from nameko.rpc import rpc\n from nameko_salesforce.streaming import handle_sobject_notification\n from nameko_salesforce.api import SalesforceAPI\n\n class Service:\n\n name = 'some-service'\n\n salesforce = SalesforceAPI()\n\n @handle_sobject_notification('Contact', exclude_current_user=False)\n def handle_contact_updates(\n self, sobject_type, record_type, notification\n ): \n \"\"\" Handle Salesforce contacts updates\n \"\"\"\n print(notification)\n\n @rpc\n def create_contact(self, last_name, email_address):\n \"\"\" Create a contact in Salesforce\n \"\"\"\n self.salesforce.Contact.create(\n {'LastName': last_name,'Email': email_address})\n\n\nCreate a config file with essential settings:\n\n.. code-block:: yaml\n\n # config.yaml\n\n AMQP_URI: 'pyamqp://guest:guest@localhost'\n SALESFORCE:\n USERNAME: ${SALESFORCE_USERNAME}\n PASSWORD: ${SALESFORCE_PASSWORD}\n SECURITY_TOKEN: ${SALESFORCE_SECURITY_TOKEN}\n SANDBOX: False\n\nRun the service providing your Salesforce credentials:\n\n.. code-block:: console\n\n $ SALESFORCE_USERNAME=rocky \\\n SALESFORCE_PASSWORD=*** \\\n SALESFORCE_SECURITY_TOKEN=*** \\\n nameko run --config config.yaml service\n\nFinally, open another shell and call the RPC endpoint to create a new user:\n\n.. code-block:: console\n\n $ nameko shell --config config.yaml\n In [1]: n.rpc['some-service'].create_contact('Yo', 'yo@yo.yo')\n\nYou should see a new contact created in Salesforce and your service should\nget a notification. In the first shell you'll find the notification printed:\n\n.. code-block:: console\n\n {'event': {'replayId': 1, 'type': 'created' ...\n\nFor more checkout the `documentation`_.\n\n.. _documentation: http://nameko-salesforce.readthedocs.io\n\n\n", "description_content_type": "", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "http://github.com/Overseas-Student-Living/nameko-salesforce", "keywords": "", "license": "Apache License, Version 2.0", "maintainer": "", "maintainer_email": "", "name": "nameko-salesforce", "package_url": "https://pypi.org/project/nameko-salesforce/", "platform": "", "project_url": "https://pypi.org/project/nameko-salesforce/", "project_urls": { "Homepage": "http://github.com/Overseas-Student-Living/nameko-salesforce" }, "release_url": "https://pypi.org/project/nameko-salesforce/1.2.0/", "requires_dist": [ "cachetools (==2.0.0)", "nameko (>=2.5.1)", "nameko-bayeux-client (==1.0.0)", "redis (==2.10.5)", "simple-salesforce (==0.72.2)", "coverage (==4.3.4); extra == 'dev'", "flake8 (==3.3.0); extra == 'dev'", "pylint (==1.8.2); extra == 'dev'", "pytest (==3.0.6); extra == 'dev'", "requests-mock (==1.3.0); extra == 'dev'", "Sphinx (==1.6.2); extra == 'docs'", "sphinx-rtd-theme (==0.2.4); extra == 'docs'" ], "requires_python": "", "summary": "Nameko extension for easy communication with Salesforce (Including Streaming API)", "version": "1.2.0" }, "last_serial": 4807794, "releases": { "1.0.0": [ { "comment_text": "", "digests": { "md5": "37cb228d05c3605834a4b5b3d7320319", "sha256": "8d7e689a3b0451cc5db7afa5e7865da9df518cfe1804c9c8a5e373e60947b361" }, "downloads": -1, "filename": "nameko_salesforce-1.0.0-py2-none-any.whl", "has_sig": false, "md5_digest": "37cb228d05c3605834a4b5b3d7320319", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 24440, "upload_time": "2017-11-29T10:16:54", "url": "https://files.pythonhosted.org/packages/42/09/1379f0bc25ff649e519b39cdaf09de9239f4a1874bee44cad0e9217a6874/nameko_salesforce-1.0.0-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "70b3ce53d9fd08353df88d69adb5a4fe", "sha256": "9fe6fdce8c996783e370646258ffebd30826889f36d090783553a43337aaaee6" }, "downloads": -1, "filename": "nameko-salesforce-1.0.0.tar.gz", "has_sig": false, "md5_digest": "70b3ce53d9fd08353df88d69adb5a4fe", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 17745, "upload_time": "2017-11-29T10:16:56", "url": "https://files.pythonhosted.org/packages/3e/9a/d2c4efc856d6ad8b8448d777b8db0186988b6e81b55fa86733e45d6a26ad/nameko-salesforce-1.0.0.tar.gz" } ], "1.0.1": [ { "comment_text": "", "digests": { "md5": "7305b1998e2869e24f21c76fa202d036", "sha256": "4a6fb8e5d0031f01626ce6bbb7dba913b1aadcf3269f8b1dddffa833dfa04546" }, "downloads": -1, "filename": "nameko_salesforce-1.0.1-py3-none-any.whl", "has_sig": false, "md5_digest": "7305b1998e2869e24f21c76fa202d036", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 24743, "upload_time": "2017-11-29T12:26:40", "url": "https://files.pythonhosted.org/packages/22/b3/7750c81313d1fbb3581086f1b64214136615e968b92c5546b9f844d2013d/nameko_salesforce-1.0.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "1a7144fcce147dc246a8d2f85d0eb14c", "sha256": "f12c00f0b014432431414e22dfa426c66f8b7a019bdd59a845516d6643cac6da" }, "downloads": -1, "filename": "nameko-salesforce-1.0.1.tar.gz", "has_sig": false, "md5_digest": "1a7144fcce147dc246a8d2f85d0eb14c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 18152, "upload_time": "2017-11-29T12:26:41", "url": "https://files.pythonhosted.org/packages/4f/f2/6d8237405a54dc63ec318dcc168ad8680415d65374e16277ac57448d466e/nameko-salesforce-1.0.1.tar.gz" } ], "1.0.2": [ { "comment_text": "", "digests": { "md5": "5c575e58f1a823b0d4afb6d7ef04c13b", "sha256": "7b20ec292879b212bb4595bbf3b4d184a06fa196f592a7ce5956d7d3daf1c65d" }, "downloads": -1, "filename": "nameko_salesforce-1.0.2-py3-none-any.whl", "has_sig": false, "md5_digest": "5c575e58f1a823b0d4afb6d7ef04c13b", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 27148, "upload_time": "2017-11-29T15:15:12", "url": "https://files.pythonhosted.org/packages/f3/04/fdee44f7635ff5193cfa3c352d38f97c4e58eede26e156e8c867b84b765a/nameko_salesforce-1.0.2-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "222a0f3139cf701cd34dd3796cdb4d61", "sha256": "ff5dae02ef7ae703db5fcd2e5ec43deb3bf38aaa1ece1bcb721feba388e90ec8" }, "downloads": -1, "filename": "nameko-salesforce-1.0.2.tar.gz", "has_sig": false, "md5_digest": "222a0f3139cf701cd34dd3796cdb4d61", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 19713, "upload_time": "2017-11-29T15:15:16", "url": "https://files.pythonhosted.org/packages/c3/ea/1f3aa47be43a22f60ae110de2c5ff34ca9c3a94070860e65d2dc8f1ac954/nameko-salesforce-1.0.2.tar.gz" } ], "1.1.0": [ { "comment_text": "", "digests": { "md5": "6b3c29400f1bf09504bf4580c14a9886", "sha256": "1777b1caac14b4f3a02f70d3ef72abe82d2a9b0d4b5fc9437bc23ece428af317" }, "downloads": -1, "filename": "nameko_salesforce-1.1.0-py3-none-any.whl", "has_sig": false, "md5_digest": "6b3c29400f1bf09504bf4580c14a9886", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 27136, "upload_time": "2018-03-04T12:46:11", "url": "https://files.pythonhosted.org/packages/a4/56/3940c5afc34c57c4b05f58ddd0345c21a2f4bda032f04612caeed1b16b5f/nameko_salesforce-1.1.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "ab2635493253adab52d53243dcd91fe5", "sha256": "eec81081f8b37f90396c2571d45fa3ec0e2c88fbd8322491fd2502cc53464721" }, "downloads": -1, "filename": "nameko-salesforce-1.1.0.tar.gz", "has_sig": false, "md5_digest": "ab2635493253adab52d53243dcd91fe5", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 19703, "upload_time": "2018-03-04T12:46:12", "url": "https://files.pythonhosted.org/packages/e0/cf/ec57d55a908ca4ad40851d1cf968cc41ad58e09f653e4134f1972802f15d/nameko-salesforce-1.1.0.tar.gz" } ], "1.2.0": [ { "comment_text": "", "digests": { "md5": "4f2d79318aa10b094a00c8474cd28455", "sha256": "dfb1cc3a518a5c7ac8d36f2b9444cff4327585b1eb0d0122d5dc64ea03af6d15" }, "downloads": -1, "filename": "nameko_salesforce-1.2.0-py3-none-any.whl", "has_sig": false, "md5_digest": "4f2d79318aa10b094a00c8474cd28455", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 24895, "upload_time": "2018-08-29T17:53:14", "url": "https://files.pythonhosted.org/packages/c8/2a/99403e3bfa7cb296e1abaace699beea3cc14d3b6598d6b802e4c676c3523/nameko_salesforce-1.2.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "f0d8f8e598be9f70db1313c8eb9543d7", "sha256": "48d13a4a54bc32858720ad3d5604c2256fe08b0e2021decaaf120f79f87f1252" }, "downloads": -1, "filename": "nameko-salesforce-1.2.0.tar.gz", "has_sig": false, "md5_digest": "f0d8f8e598be9f70db1313c8eb9543d7", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 19822, "upload_time": "2018-08-29T17:53:15", "url": "https://files.pythonhosted.org/packages/f6/01/78c7823d174ac4a323a13cb159a114c4e2abd92adaf3ee2f90a303a9ed46/nameko-salesforce-1.2.0.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "4f2d79318aa10b094a00c8474cd28455", "sha256": "dfb1cc3a518a5c7ac8d36f2b9444cff4327585b1eb0d0122d5dc64ea03af6d15" }, "downloads": -1, "filename": "nameko_salesforce-1.2.0-py3-none-any.whl", "has_sig": false, "md5_digest": "4f2d79318aa10b094a00c8474cd28455", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 24895, "upload_time": "2018-08-29T17:53:14", "url": "https://files.pythonhosted.org/packages/c8/2a/99403e3bfa7cb296e1abaace699beea3cc14d3b6598d6b802e4c676c3523/nameko_salesforce-1.2.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "f0d8f8e598be9f70db1313c8eb9543d7", "sha256": "48d13a4a54bc32858720ad3d5604c2256fe08b0e2021decaaf120f79f87f1252" }, "downloads": -1, "filename": "nameko-salesforce-1.2.0.tar.gz", "has_sig": false, "md5_digest": "f0d8f8e598be9f70db1313c8eb9543d7", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 19822, "upload_time": "2018-08-29T17:53:15", "url": "https://files.pythonhosted.org/packages/f6/01/78c7823d174ac4a323a13cb159a114c4e2abd92adaf3ee2f90a303a9ed46/nameko-salesforce-1.2.0.tar.gz" } ] }