From 5ba4c7e7700daee169a64093b5c101aeb52b9d20 Mon Sep 17 00:00:00 2001 From: Chris Lunsford Date: Mon, 17 Oct 2016 12:47:41 -0400 Subject: [PATCH 01/37] Convert README to reStructuredText and Revise #15 Initial README.rst --- README.rst | 147 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 147 insertions(+) create mode 100644 README.rst diff --git a/README.rst b/README.rst new file mode 100644 index 0000000..eee7c55 --- /dev/null +++ b/README.rst @@ -0,0 +1,147 @@ +============= +ciscosparkapi +============= + +---------------------------------------------------------------------------- +Simple, lightweight and scalable Python API wrapper for the Cisco Spark APIs +---------------------------------------------------------------------------- + +Sure, working with the Cisco Spark APIs is easy (see `devloper.ciscospark.com`_). They are RESTful, simply and naturally structured, require only a simple Access Token to authenticate, and the data is elegantly represented in intuitive JSON. What could be easier? + +.. code-block:: python + import requests + + URL = 'https://api.ciscospark.com/v1/messages' + ACCESS_TOKEN = '' + ROOM_ID = '' + MESSAGE_TEXT = '' + + headers = {'Authorization': 'Bearer ' + ACCESS_TOKEN, + 'Content-type': 'application/json;charset=utf-8'} + post_data = {'roomId': ROOM_ID, + 'text': MESSAGE_TEXT} + response = requests.post(URL, json=post_data, headers=headers) + if response.status_code == 200: + # Great your message was posted! + message_id = response.json['id'] + message_text = response.json['id'] + print("New message created, with ID:", message_id) + print(message_text) + else: + # Oops something went wrong... Better do something about it. + print(response.status_code, response.text) + +Like I said, easy. However, it is rather repetitive... + +- You have to setup this same environment every time you want do something with just one of the API calls. +- ...and this was just posting a text message to Spark, what about when you want to do something like uploading a file? +- What if you your application or use case needs to make calls to several of the Spark APIs? +- This can turn into a lot of boiler plate code! +- Sure, you can consolidate the repetitious code into functions, and end up building your own library of functions (and many have done this!), or you can build upon the shoulders of those who have gone before you... + +Enter **ciscosparkapi**, a simple API wrapper that wraps the RESTful Spark API calls and returned JSON objects within native Python objects and function calls. + +The above Python code can be consolidated to the following: + +.. code-block:: python + from ciscosparkapi import CiscoSparkAPI + + api = CiscoSparkAPI() # Creates a new API 'connection object' + try: + message = api.messages.create('', text='') # Creates a new message and raises an exception if something goes wrong. + print("New message created, with ID:", message.id) + print(message.text) + except SparkApiError as e: # Handles the exception, if something goes wrong + print(e) + +The ciscosparkapi package handles all of this for you: + ++ Your Spark access token can automatically be retrieved from a ``SPARK_ACCESS_TOKEN`` environment variable. *You don't have to provide it every time you create a new API connection object.* ++ *You don't have to remember the API endpoint URLs or JSON parameters.* They have been wrapped in native Python methods. ++ If your Python IDE supports **auto-completion** (like PyCharm_), *you can simply navigate the available methods and object attributes right within your IDE*. ++ The JSON objects returned from the Cisco Spark cloud are modeled as native Python objects, which also support auto-completion and native attribute access. *You don't have to think about parsing the JSON objects or working with dictionaries or creating lots of variables to hold the returned object's attributes. You can simply interact with the returned object as a native Python object.* ++ When requesting 'lists of objects' from Spark, like enumerating the messages in a room or a list of rooms of which you are a member, you don't have think about handling and requesting pages_ of responses. These are simply and efficiently abstracted and requested as needed - as you access the returned objects. *Other than a slight delay as additional objects are requested from the Spark cloud, you won't have to deal with or think about pages of responses.* + +...which lets you do powerful things simply: + +.. code-block:: python + from ciscosparkapi import CiscoSparkAPI + + api = CiscoSparkAPI() + + # Find all of rooms that have 'ciscosparkapi Demo' in their title + all_rooms = api.rooms.list() + demo_rooms = [room for room in all_rooms if 'ciscosparkapi Demo' in room.title] + + # Delete all of the demo rooms + for room in demo_rooms: + api.rooms.delete(room.id) + + # Create a new demo room + demo_room = api.rooms.create('ciscosparkapi Demo') + + # Add people to the new demo room + email_addresses = ["test01@cmlccie.com", "test02@cmlccie.com"] + for email_address in email_addresses: + api.memberships.create(demo_room.id, personEmail=email_address) + + # Post a message to the new room, and upload a file + api.message.create(demo_room.id, text="Welcome to the room!", files=["welcome.jpg"]) + +That's at least six Spark API calls, and likely more than that depending on how rooms are returned by Spark (remember paging is handled for you automatically) and how many people you add to the room. All in only about 23 lines (which includes comments). + + +Installation +------------ + +ciscosparkapi is available on PyPI. Install it via PIP, or alternatively you can download the package from GitHub and install it via setuptools. + +**PIP Installation** +.. code-block:: bash + $ pip install ciscosparkapi + +**git / setuptools Installation** +.. code-block:: bash + $ git clone https://github.com/CiscoDevNet/ciscosparkapi.git + $ python ciscosparkapi/setup.py install + + +Releases & Release Notes +------------------------ + +Complete and usable *Beta* releases have been published for this package. + +While the package APIs may change while in beta, the package capabilities should all be functional. If you expereince any issues using this package, please report them using the issues_ log on the packages GitHub page. + +Please see the releases_ page for release notes on the incremental functionality and bug fixes that have been incorporated into the published releases. + + +Contribution +------------ + +ciscosparkapi_ and it's sister project ciscosparksdk_ are community development projects. Feedback, thoughts, ideas and code contributions are most welcome! + +To contribute to ciscosparkapi_ please use the following resources: +* Feedback, issues, thoughts and ideas... Please use the issues_ log. +* Interested in contributing code? + # Check for open issues_ or create a new one. + * Assign yourself to the issue you want to work on, and communicate with any others that may be working the issue. + * Project workflow is being managed via the GitHub projects_ feature. Move your issue to the 'In Progress' column of the project being worked. + # Review the project charter_ for coding standards and practices. + # Fork a copy of `the repository`_. + # Add your code to your forked repository. + # Submit a `pull request`_, and move your issue to the 'Code Review' column on the projects_ page. + + +.. _devloper.ciscospark.com: https://developer.ciscospark.com +.. _pages: https://developer.ciscospark.com/pagination.html +.. _PyCharm: https://www.jetbrains.com/pycharm/ +.. _ciscosparkapi: https://github.com/CiscoDevNet/ciscosparkapi +.. _ciscosparksdk: https://github.com/CiscoDevNet/ciscosparksdk +.. _issues: https://github.com/CiscoDevNet/ciscosparkapi/issues +.. _projects: https://github.com/CiscoDevNet/ciscosparkapi/projects +.. _pull requests: https://github.com/CiscoDevNet/ciscosparkapi/pulls +.. _releases: https://github.com/CiscoDevNet/ciscosparkapi/releases +.. _charter: https://github.com/CiscoDevNet/spark-python-packages-team/blob/master/Charter.md +.. _the repository: ciscosparkapi_ +.. _pull request: `pull requests`_ From 8f995911bc99588f48bba358c000a9f130c9bcad Mon Sep 17 00:00:00 2001 From: Chris Lunsford Date: Mon, 17 Oct 2016 15:10:45 -0400 Subject: [PATCH 02/37] Update README.rst #15 Correct formatting issues and simplify text. --- README.rst | 78 +++++++++++++++++++++++++++++++----------------------- 1 file changed, 45 insertions(+), 33 deletions(-) diff --git a/README.rst b/README.rst index eee7c55..81cf7de 100644 --- a/README.rst +++ b/README.rst @@ -6,9 +6,10 @@ ciscosparkapi Simple, lightweight and scalable Python API wrapper for the Cisco Spark APIs ---------------------------------------------------------------------------- -Sure, working with the Cisco Spark APIs is easy (see `devloper.ciscospark.com`_). They are RESTful, simply and naturally structured, require only a simple Access Token to authenticate, and the data is elegantly represented in intuitive JSON. What could be easier? +Sure, working with the Cisco Spark APIs is easy (see `devloper.ciscospark.com`_). They are *RESTful*, *naturally structured*, require only a *simple Access Token for authentication*, and *the data is elegantly represented in intuitive JSON*. What could be easier? .. code-block:: python + import requests URL = 'https://api.ciscospark.com/v1/messages' @@ -31,19 +32,20 @@ Sure, working with the Cisco Spark APIs is easy (see `devloper.ciscospark.com`_) # Oops something went wrong... Better do something about it. print(response.status_code, response.text) -Like I said, easy. However, it is rather repetitive... +Like I said, *EASY*. However, in use, the code can be rather repetitive... + +- You have to setup the environment every time +- You have to remember URLs and request arguments (or reference the docs) +- You have to parse the returned JSON and setup variables to hold the attributes you need +- When requesting lists of items, you have to deal with pagination_ -- You have to setup this same environment every time you want do something with just one of the API calls. -- ...and this was just posting a text message to Spark, what about when you want to do something like uploading a file? -- What if you your application or use case needs to make calls to several of the Spark APIs? -- This can turn into a lot of boiler plate code! -- Sure, you can consolidate the repetitious code into functions, and end up building your own library of functions (and many have done this!), or you can build upon the shoulders of those who have gone before you... -Enter **ciscosparkapi**, a simple API wrapper that wraps the RESTful Spark API calls and returned JSON objects within native Python objects and function calls. +Enter **ciscosparkapi**, a simple API wrapper that wraps all of the Spark API calls and returned JSON objects within native Python objects and function calls. -The above Python code can be consolidated to the following: +With ciscosparkapi, the above Python code can be consolidated to the following: .. code-block:: python + from ciscosparkapi import CiscoSparkAPI api = CiscoSparkAPI() # Creates a new API 'connection object' @@ -56,20 +58,22 @@ The above Python code can be consolidated to the following: The ciscosparkapi package handles all of this for you: -+ Your Spark access token can automatically be retrieved from a ``SPARK_ACCESS_TOKEN`` environment variable. *You don't have to provide it every time you create a new API connection object.* -+ *You don't have to remember the API endpoint URLs or JSON parameters.* They have been wrapped in native Python methods. -+ If your Python IDE supports **auto-completion** (like PyCharm_), *you can simply navigate the available methods and object attributes right within your IDE*. -+ The JSON objects returned from the Cisco Spark cloud are modeled as native Python objects, which also support auto-completion and native attribute access. *You don't have to think about parsing the JSON objects or working with dictionaries or creating lots of variables to hold the returned object's attributes. You can simply interact with the returned object as a native Python object.* -+ When requesting 'lists of objects' from Spark, like enumerating the messages in a room or a list of rooms of which you are a member, you don't have think about handling and requesting pages_ of responses. These are simply and efficiently abstracted and requested as needed - as you access the returned objects. *Other than a slight delay as additional objects are requested from the Spark cloud, you won't have to deal with or think about pages of responses.* ++ Reads your Spark access token from a ``SPARK_ACCESS_TOKEN`` environment variable ++ Wraps and represents all Spark API calls as a simple hierarchal tree of native-Python methods (with default arguments everywhere possible) ++ If your Python IDE supports **auto-completion** (like PyCharm_), you can navigate the available methods and object attributes right within your IDE ++ Represents all returned JSON objects as native Python objects - you can access all of the object's attributes using native *dot-syntax* ++ **Automatic and Transparent Pagination!** When requesting 'lists of objects' from Spark, requests for additional pages of responses are efficiently and automatically requested as needed ++ Multipart encoding and uploading of local files, when creating messages with local file attachements -...which lets you do powerful things simply: +All of this, combined, lets you do powerful things simply: .. code-block:: python + from ciscosparkapi import CiscoSparkAPI api = CiscoSparkAPI() - # Find all of rooms that have 'ciscosparkapi Demo' in their title + # Find all rooms that have 'ciscosparkapi Demo' in their title all_rooms = api.rooms.list() demo_rooms = [room for room in all_rooms if 'ciscosparkapi Demo' in room.title] @@ -82,28 +86,32 @@ The ciscosparkapi package handles all of this for you: # Add people to the new demo room email_addresses = ["test01@cmlccie.com", "test02@cmlccie.com"] - for email_address in email_addresses: - api.memberships.create(demo_room.id, personEmail=email_address) + for email in email_addresses: + api.memberships.create(demo_room.id, personEmail=email) # Post a message to the new room, and upload a file api.message.create(demo_room.id, text="Welcome to the room!", files=["welcome.jpg"]) -That's at least six Spark API calls, and likely more than that depending on how rooms are returned by Spark (remember paging is handled for you automatically) and how many people you add to the room. All in only about 23 lines (which includes comments). +That's more than six Spark API calls in less than 23 lines of script code (with comments)! +...and likely more than that depending on how many rooms are returned by Spark (remember pagination is handled for you automatically) Installation ------------ -ciscosparkapi is available on PyPI. Install it via PIP, or alternatively you can download the package from GitHub and install it via setuptools. +ciscosparkapi is available on PyPI. Installation and updating of ciscosparkapi is easy: + +**Install via PIP** -**PIP Installation** .. code-block:: bash + $ pip install ciscosparkapi -**git / setuptools Installation** +**Upgrading to the latest Version** + .. code-block:: bash - $ git clone https://github.com/CiscoDevNet/ciscosparkapi.git - $ python ciscosparkapi/setup.py install + + $ pip install ciscosparkapi --upgrade Releases & Release Notes @@ -111,7 +119,7 @@ Releases & Release Notes Complete and usable *Beta* releases have been published for this package. -While the package APIs may change while in beta, the package capabilities should all be functional. If you expereince any issues using this package, please report them using the issues_ log on the packages GitHub page. +While the package APIs may change while in beta, the package capabilities should all be functional. If you expereince any issues using this package, please report them using the issues_ log. Please see the releases_ page for release notes on the incremental functionality and bug fixes that have been incorporated into the published releases. @@ -122,19 +130,23 @@ Contribution ciscosparkapi_ and it's sister project ciscosparksdk_ are community development projects. Feedback, thoughts, ideas and code contributions are most welcome! To contribute to ciscosparkapi_ please use the following resources: + * Feedback, issues, thoughts and ideas... Please use the issues_ log. * Interested in contributing code? - # Check for open issues_ or create a new one. - * Assign yourself to the issue you want to work on, and communicate with any others that may be working the issue. - * Project workflow is being managed via the GitHub projects_ feature. Move your issue to the 'In Progress' column of the project being worked. - # Review the project charter_ for coding standards and practices. - # Fork a copy of `the repository`_. - # Add your code to your forked repository. - # Submit a `pull request`_, and move your issue to the 'Code Review' column on the projects_ page. + + #. Check for open issues_ or create a new one. + + * Assign yourself to the issue you want to work on, and communicate with any others that may be working the issue. + * Project workflow is being managed via the GitHub projects_ feature. Move your issue to the 'In Progress' column of the project being worked. + + #. Review the project charter_ for coding standards and practices. + #. Fork a copy of `the repository`_. + #. Add your code to your forked repository. + #. Submit a `pull request`_, and move your issue to the 'Code Review' column on the projects_ page. .. _devloper.ciscospark.com: https://developer.ciscospark.com -.. _pages: https://developer.ciscospark.com/pagination.html +.. _pagination: https://developer.ciscospark.com/pagination.html .. _PyCharm: https://www.jetbrains.com/pycharm/ .. _ciscosparkapi: https://github.com/CiscoDevNet/ciscosparkapi .. _ciscosparksdk: https://github.com/CiscoDevNet/ciscosparksdk From 049e48a4c9e6a3f5c16718dd1ed0b5d762eb0251 Mon Sep 17 00:00:00 2001 From: Chris Lunsford Date: Mon, 17 Oct 2016 15:39:20 -0400 Subject: [PATCH 03/37] Update README.rst #15 Add examples and documentation sections and misc edits. --- README.rst | 69 +++++++++++++++++++++++++++++++++++++++++++----------- 1 file changed, 55 insertions(+), 14 deletions(-) diff --git a/README.rst b/README.rst index 81cf7de..421048d 100644 --- a/README.rst +++ b/README.rst @@ -6,7 +6,10 @@ ciscosparkapi Simple, lightweight and scalable Python API wrapper for the Cisco Spark APIs ---------------------------------------------------------------------------- -Sure, working with the Cisco Spark APIs is easy (see `devloper.ciscospark.com`_). They are *RESTful*, *naturally structured*, require only a *simple Access Token for authentication*, and *the data is elegantly represented in intuitive JSON*. What could be easier? +.. image:: https://img.shields.io/pypi/v/ciscosparkapi.svg + :target: https://pypi.python.org/pypi/ciscosparkapi + +Sure, working with the Cisco Spark APIs is easy (see `developer.ciscospark.com`_). They are *RESTful*, *naturally structured*, require only a *simple Access Token for authentication*, and *the data is elegantly represented in intuitive JSON*. What could be easier? .. code-block:: python @@ -59,11 +62,11 @@ With ciscosparkapi, the above Python code can be consolidated to the following: The ciscosparkapi package handles all of this for you: + Reads your Spark access token from a ``SPARK_ACCESS_TOKEN`` environment variable -+ Wraps and represents all Spark API calls as a simple hierarchal tree of native-Python methods (with default arguments everywhere possible) ++ Wraps and represents all Spark API calls as a simple hierarchical tree of native-Python methods (with default arguments provided everywhere possible!) + If your Python IDE supports **auto-completion** (like PyCharm_), you can navigate the available methods and object attributes right within your IDE -+ Represents all returned JSON objects as native Python objects - you can access all of the object's attributes using native *dot-syntax* ++ Represents all returned JSON objects as native Python objects - you can access all of the object's attributes using native *dot.syntax* + **Automatic and Transparent Pagination!** When requesting 'lists of objects' from Spark, requests for additional pages of responses are efficiently and automatically requested as needed -+ Multipart encoding and uploading of local files, when creating messages with local file attachements ++ Multipart encoding and uploading of local files, when creating messages with local file attachments All of this, combined, lets you do powerful things simply: @@ -99,7 +102,7 @@ That's more than six Spark API calls in less than 23 lines of script code (with Installation ------------ -ciscosparkapi is available on PyPI. Installation and updating of ciscosparkapi is easy: +Installation and updating of ciscosparkapi is easy: **Install via PIP** @@ -117,37 +120,75 @@ ciscosparkapi is available on PyPI. Installation and updating of ciscosparkapi Releases & Release Notes ------------------------ -Complete and usable *Beta* releases have been published for this package. +Complete and usable *Beta* releases_ have been published for this package. -While the package APIs may change while in beta, the package capabilities should all be functional. If you expereince any issues using this package, please report them using the issues_ log. +While the package APIs may change (while the package is in beta), the package capabilities should all be functional. If you experience any issues using this package, please report them using the issues_ log. Please see the releases_ page for release notes on the incremental functionality and bug fixes that have been incorporated into the published releases. +Examples +-------- + +Looking for some examples or sample scripts? Check out the examples_ folder! + +Have a good example script you would like to share? Please feel free to contribute! + + +Documentation +------------- + +All of the user-facing methods have complete docstrings. You can view the docstrings for any method either from the `source files`_, or by using the Python ``help()`` function. + +.. code-block:: python + + >> from ciscosparkapi import CiscoSparkAPI + >> api = CiscoSparkAPI() + >> help(api.messages.create) + create(self, roomId=None, toPersonId=None, toPersonEmail=None, text=None, markdown=None, files=None) method of ciscosparkapi.api.messages.MessagesAPI instance + Posts a message to a room. + + Posts a message, and optionally, a media content attachment, to a room. + + You must specify either a roomId, toPersonId or toPersonEmail when + posting a message, and you must supply some message content (text, + markdown, files). + + Args: + roomId(string_types): The room ID. + toPersonId(string_types): The ID of the recipient when sending a + private 1:1 message. + ... + +Full standalone online documentation is coming soon (it's on the backlog!). + + Contribution ------------ ciscosparkapi_ and it's sister project ciscosparksdk_ are community development projects. Feedback, thoughts, ideas and code contributions are most welcome! -To contribute to ciscosparkapi_ please use the following resources: +To contribute to ciscosparkapi please use the following resources: * Feedback, issues, thoughts and ideas... Please use the issues_ log. * Interested in contributing code? - #. Check for open issues_ or create a new one. + 1. Check for open issues_ or create a new one. * Assign yourself to the issue you want to work on, and communicate with any others that may be working the issue. * Project workflow is being managed via the GitHub projects_ feature. Move your issue to the 'In Progress' column of the project being worked. - #. Review the project charter_ for coding standards and practices. - #. Fork a copy of `the repository`_. - #. Add your code to your forked repository. - #. Submit a `pull request`_, and move your issue to the 'Code Review' column on the projects_ page. + 2. Review the project charter_ for coding standards and practices. + 3. Fork a copy of `the repository`_. + 4. Add your code to your forked repository. + 5. Submit a `pull request`_, and move your issue to the 'Code Review' column on the projects_ page. -.. _devloper.ciscospark.com: https://developer.ciscospark.com +.. _developer.ciscospark.com: https://developer.ciscospark.com .. _pagination: https://developer.ciscospark.com/pagination.html .. _PyCharm: https://www.jetbrains.com/pycharm/ +.. _examples: https://github.com/CiscoDevNet/ciscosparkapi/tree/master/examples +.. _source files: https://github.com/CiscoDevNet/ciscosparkapi/tree/master/ciscosparkapi .. _ciscosparkapi: https://github.com/CiscoDevNet/ciscosparkapi .. _ciscosparksdk: https://github.com/CiscoDevNet/ciscosparksdk .. _issues: https://github.com/CiscoDevNet/ciscosparkapi/issues From 6bce86c1db244ecd35e46a50933ba1ee5cf031da Mon Sep 17 00:00:00 2001 From: Chris Lunsford Date: Mon, 17 Oct 2016 15:42:11 -0400 Subject: [PATCH 04/37] Switch package to use new README.rst #15 Delete old README.md and point setup.py to new README.rst --- README.md | 73 ------------------------------------------------------- setup.py | 2 +- 2 files changed, 1 insertion(+), 74 deletions(-) delete mode 100644 README.md diff --git a/README.md b/README.md deleted file mode 100644 index 0d1ccb1..0000000 --- a/README.md +++ /dev/null @@ -1,73 +0,0 @@ -# ciscosparkapi -Simple, lightweight and scalable Python API wrapper for the Cisco Spark APIs - -## Overview -Provides single Pythonic wrapper class that represents the Cisco Spark API interfaces and returned JSON objects as native Python objects. - - * Supports Python versions 2 and 3. - - * Leverages generator containers and RFC5988 web linking to provide simple and efficient 'paging' of Cisco Spark data objects returned by the Cisco Spark cloud. - - * All Cisco Spark JSON objects and attributes are represented as native python objects. - * As new Cisco Spark attributes are added and returned by the Spark cloud service, they will be automatically available in the respective Python objects - no library update required. - * New object types can be quickly created and modeled by via the generic SparkData class, or you can easily subclass SparkData to provide additional functionality. - - * The CiscoSparkAPI class facilitates the creation of simple 'connection objects.' All API calls are wrapped by this single class, and are available via a simple hierarchical structure - like CiscoSparkAPI.rooms.list(). - * Argument defaults are provided to make getting connected simple, and can be easily overridden if needed. - * The only setting required to get connected is your Cisco Spark Access Token (see [developer.ciscospark.com](https://developer.ciscospark.com/getting-started.html)). When creating a new CiscoSparkAPI object, you may provide your access token one of two ways: - 1. By setting a SPARK_ACCESS_TOKEN environment variable. - 2. Via the ```CiscoSparkAPI(access_token="")``` argument. - * All API calls are provided as simple method calls on the API connection objects. - - -## Installation -ciscosparkapi is available on PyPI. Install it via PIP, or alternatively you can download the package from GitHub and install it via setuptools. - -**PIP Installation** -``` -$ pip install ciscosparkapi -``` - -**git / setuptools Installation** -``` -$ git clone https://github.com/CiscoDevNet/ciscosparkapi.git -$ python setup.py install -``` - -## Examples - -```python -from ciscosparkapi import CiscoSparkAPI - - -# By default retrieves your access token from the SPARK_ACCESS_TOKEN environement variable -api = CiscoSparkAPI() - - -rooms = api.rooms.list() # Returns an generator container providing support for RFC5988 paging -for room in rooms: # Efficiently iterates through returned objects - print room.title # JSON objects are represented as native Python objects - - -# Creating a list from the returned generator containers is easy -teams = api.teams.list() -team_list = list(teams) -print teams_list -``` - - -## Current Status -**Beta(s) Released!** - -Please check the [releases page](https://github.com/CiscoDevNet/ciscosparkapi/releases) for details on the latest releases. - -We have released the first beta distributions for this package! Please test out the package for your use cases, and raise [issues](https://github.com/CiscoDevNet/ciscosparkapi/issues) for any problems you encounter. Also, **PLEASE** create new [issues](https://github.com/CiscoDevNet/ciscosparkapi/issues) to provide any feedback on the package API structure (names, method calls and etc.). The package APIs are still subject to change, and we would like to get these nailed down before we release v1 for the package. - - -## Community Development Project Information -This is a collaborative community development project working to create two packages to be published to the Python Package Index: - - 1. [**ciscosparkapi**](https://github.com/CiscoDevNet/ciscosparkapi) - Simple, lightweight and scalable Python API wrapper for the Cisco Spark APIs - 2. [**ciscosparksdk**](https://github.com/CiscoDevNet/ciscosparksdk) - Additional features and functionality useful to developers building on Cisco Spark API - -Contributions and feedback are welcome. Information on contributing this project can be found [here in the project Charter](https://github.com/CiscoDevNet/spark-python-packages-team/blob/master/Charter.md). diff --git a/setup.py b/setup.py index 3f88847..4acb953 100644 --- a/setup.py +++ b/setup.py @@ -13,7 +13,7 @@ # Get the long description from the README file -with open(path.join(here, 'README.md'), encoding='utf-8') as f: +with open(path.join(here, 'README.rst'), encoding='utf-8') as f: long_description = f.read() From c415ecc84e0d54602397c0c711edd66d0b1fe960 Mon Sep 17 00:00:00 2001 From: Chris Lunsford Date: Mon, 17 Oct 2016 15:44:14 -0400 Subject: [PATCH 05/37] README.rst Update Sub-Title --- README.rst | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/README.rst b/README.rst index 421048d..d0a26f3 100644 --- a/README.rst +++ b/README.rst @@ -2,9 +2,9 @@ ciscosparkapi ============= ----------------------------------------------------------------------------- -Simple, lightweight and scalable Python API wrapper for the Cisco Spark APIs ----------------------------------------------------------------------------- +------------------------------------------------------------------------- +Simple, lightweight, scalable Python API wrapper for the Cisco Spark APIs +------------------------------------------------------------------------- .. image:: https://img.shields.io/pypi/v/ciscosparkapi.svg :target: https://pypi.python.org/pypi/ciscosparkapi From a19a975adedd81cb5233453a2bfa4eb4b9239635 Mon Sep 17 00:00:00 2001 From: Chris Lunsford Date: Mon, 17 Oct 2016 15:48:37 -0400 Subject: [PATCH 06/37] Update README.rst --- README.rst | 25 +++++++++++++------------ 1 file changed, 13 insertions(+), 12 deletions(-) diff --git a/README.rst b/README.rst index d0a26f3..074b033 100644 --- a/README.rst +++ b/README.rst @@ -142,9 +142,9 @@ All of the user-facing methods have complete docstrings. You can view the docst .. code-block:: python - >> from ciscosparkapi import CiscoSparkAPI - >> api = CiscoSparkAPI() - >> help(api.messages.create) + >>> from ciscosparkapi import CiscoSparkAPI + >>> api = CiscoSparkAPI() + >>> help(api.messages.create) create(self, roomId=None, toPersonId=None, toPersonEmail=None, text=None, markdown=None, files=None) method of ciscosparkapi.api.messages.MessagesAPI instance Posts a message to a room. @@ -170,18 +170,19 @@ ciscosparkapi_ and it's sister project ciscosparksdk_ are community development To contribute to ciscosparkapi please use the following resources: -* Feedback, issues, thoughts and ideas... Please use the issues_ log. -* Interested in contributing code? +Feedback, issues, thoughts and ideas... Please use the issues_ log. - 1. Check for open issues_ or create a new one. +Interested in contributing code? - * Assign yourself to the issue you want to work on, and communicate with any others that may be working the issue. - * Project workflow is being managed via the GitHub projects_ feature. Move your issue to the 'In Progress' column of the project being worked. +#. Check for open issues_ or create a new one. - 2. Review the project charter_ for coding standards and practices. - 3. Fork a copy of `the repository`_. - 4. Add your code to your forked repository. - 5. Submit a `pull request`_, and move your issue to the 'Code Review' column on the projects_ page. + * Assign yourself to the issue you want to work on, and communicate with any others that may be working the issue. + * Project workflow is being managed via the GitHub projects_ feature. Move your issue to the 'In Progress' column of the project being worked. + +#. Review the project charter_ for coding standards and practices. +#. Fork a copy of `the repository`_. +#. Add your code to your forked repository. +#. Submit a `pull request`_, and move your issue to the 'Code Review' column on the projects_ page. .. _developer.ciscospark.com: https://developer.ciscospark.com From eb3342947a612fc81771f39992264630b9236f63 Mon Sep 17 00:00:00 2001 From: Chris Lunsford Date: Mon, 17 Oct 2016 15:50:05 -0400 Subject: [PATCH 07/37] Update README.rst --- README.rst | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/README.rst b/README.rst index 074b033..9d8bd79 100644 --- a/README.rst +++ b/README.rst @@ -51,12 +51,12 @@ With ciscosparkapi, the above Python code can be consolidated to the following: from ciscosparkapi import CiscoSparkAPI - api = CiscoSparkAPI() # Creates a new API 'connection object' + api = CiscoSparkAPI() try: - message = api.messages.create('', text='') # Creates a new message and raises an exception if something goes wrong. + message = api.messages.create('', text='') print("New message created, with ID:", message.id) print(message.text) - except SparkApiError as e: # Handles the exception, if something goes wrong + except SparkApiError as e: print(e) The ciscosparkapi package handles all of this for you: From cf145a4dd0a7cfacfe6fff59dcbcd9b6f0b3c240 Mon Sep 17 00:00:00 2001 From: Chris Lunsford Date: Thu, 20 Oct 2016 09:33:47 -0400 Subject: [PATCH 08/37] Update README --- README.rst | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/README.rst b/README.rst index 9d8bd79..fcc8a1b 100644 --- a/README.rst +++ b/README.rst @@ -9,7 +9,7 @@ Simple, lightweight, scalable Python API wrapper for the Cisco Spark APIs .. image:: https://img.shields.io/pypi/v/ciscosparkapi.svg :target: https://pypi.python.org/pypi/ciscosparkapi -Sure, working with the Cisco Spark APIs is easy (see `developer.ciscospark.com`_). They are *RESTful*, *naturally structured*, require only a *simple Access Token for authentication*, and *the data is elegantly represented in intuitive JSON*. What could be easier? +Sure, working with the Cisco Spark APIs is easy (see `developer.ciscospark.com`_). They are RESTful, naturally structured, require only a simple Access Token for authentication, and the data is elegantly represented in intuitive JSON. What could be easier? .. code-block:: python @@ -28,14 +28,14 @@ Sure, working with the Cisco Spark APIs is easy (see `developer.ciscospark.com`_ if response.status_code == 200: # Great your message was posted! message_id = response.json['id'] - message_text = response.json['id'] + message_text = response.json['text'] print("New message created, with ID:", message_id) print(message_text) else: # Oops something went wrong... Better do something about it. print(response.status_code, response.text) -Like I said, *EASY*. However, in use, the code can be rather repetitive... +Like I said, EASY. However, in use, the code can become rather repetitive... - You have to setup the environment every time - You have to remember URLs and request arguments (or reference the docs) From 70b38e5e251bc8c8f0538176fc100b01fab3e1ba Mon Sep 17 00:00:00 2001 From: Chris Lunsford Date: Thu, 20 Oct 2016 10:32:24 -0400 Subject: [PATCH 09/37] Initial Sphinx setup MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Create new ‘docs’ directory. Run sphinx-quickstart in ‘docs’ --- docs/Makefile | 225 +++++++++++++++++++++++++++++++ docs/conf.py | 350 +++++++++++++++++++++++++++++++++++++++++++++++++ docs/index.rst | 22 ++++ docs/make.bat | 281 +++++++++++++++++++++++++++++++++++++++ 4 files changed, 878 insertions(+) create mode 100644 docs/Makefile create mode 100644 docs/conf.py create mode 100644 docs/index.rst create mode 100644 docs/make.bat diff --git a/docs/Makefile b/docs/Makefile new file mode 100644 index 0000000..3312485 --- /dev/null +++ b/docs/Makefile @@ -0,0 +1,225 @@ +# Makefile for Sphinx documentation +# + +# You can set these variables from the command line. +SPHINXOPTS = +SPHINXBUILD = sphinx-build +PAPER = +BUILDDIR = _build + +# Internal variables. +PAPEROPT_a4 = -D latex_paper_size=a4 +PAPEROPT_letter = -D latex_paper_size=letter +ALLSPHINXOPTS = -d $(BUILDDIR)/doctrees $(PAPEROPT_$(PAPER)) $(SPHINXOPTS) . +# the i18n builder cannot share the environment and doctrees with the others +I18NSPHINXOPTS = $(PAPEROPT_$(PAPER)) $(SPHINXOPTS) . + +.PHONY: help +help: + @echo "Please use \`make ' where is one of" + @echo " html to make standalone HTML files" + @echo " dirhtml to make HTML files named index.html in directories" + @echo " singlehtml to make a single large HTML file" + @echo " pickle to make pickle files" + @echo " json to make JSON files" + @echo " htmlhelp to make HTML files and a HTML help project" + @echo " qthelp to make HTML files and a qthelp project" + @echo " applehelp to make an Apple Help Book" + @echo " devhelp to make HTML files and a Devhelp project" + @echo " epub to make an epub" + @echo " epub3 to make an epub3" + @echo " latex to make LaTeX files, you can set PAPER=a4 or PAPER=letter" + @echo " latexpdf to make LaTeX files and run them through pdflatex" + @echo " latexpdfja to make LaTeX files and run them through platex/dvipdfmx" + @echo " text to make text files" + @echo " man to make manual pages" + @echo " texinfo to make Texinfo files" + @echo " info to make Texinfo files and run them through makeinfo" + @echo " gettext to make PO message catalogs" + @echo " changes to make an overview of all changed/added/deprecated items" + @echo " xml to make Docutils-native XML files" + @echo " pseudoxml to make pseudoxml-XML files for display purposes" + @echo " linkcheck to check all external links for integrity" + @echo " doctest to run all doctests embedded in the documentation (if enabled)" + @echo " coverage to run coverage check of the documentation (if enabled)" + @echo " dummy to check syntax errors of document sources" + +.PHONY: clean +clean: + rm -rf $(BUILDDIR)/* + +.PHONY: html +html: + $(SPHINXBUILD) -b html $(ALLSPHINXOPTS) $(BUILDDIR)/html + @echo + @echo "Build finished. The HTML pages are in $(BUILDDIR)/html." + +.PHONY: dirhtml +dirhtml: + $(SPHINXBUILD) -b dirhtml $(ALLSPHINXOPTS) $(BUILDDIR)/dirhtml + @echo + @echo "Build finished. The HTML pages are in $(BUILDDIR)/dirhtml." + +.PHONY: singlehtml +singlehtml: + $(SPHINXBUILD) -b singlehtml $(ALLSPHINXOPTS) $(BUILDDIR)/singlehtml + @echo + @echo "Build finished. The HTML page is in $(BUILDDIR)/singlehtml." + +.PHONY: pickle +pickle: + $(SPHINXBUILD) -b pickle $(ALLSPHINXOPTS) $(BUILDDIR)/pickle + @echo + @echo "Build finished; now you can process the pickle files." + +.PHONY: json +json: + $(SPHINXBUILD) -b json $(ALLSPHINXOPTS) $(BUILDDIR)/json + @echo + @echo "Build finished; now you can process the JSON files." + +.PHONY: htmlhelp +htmlhelp: + $(SPHINXBUILD) -b htmlhelp $(ALLSPHINXOPTS) $(BUILDDIR)/htmlhelp + @echo + @echo "Build finished; now you can run HTML Help Workshop with the" \ + ".hhp project file in $(BUILDDIR)/htmlhelp." + +.PHONY: qthelp +qthelp: + $(SPHINXBUILD) -b qthelp $(ALLSPHINXOPTS) $(BUILDDIR)/qthelp + @echo + @echo "Build finished; now you can run "qcollectiongenerator" with the" \ + ".qhcp project file in $(BUILDDIR)/qthelp, like this:" + @echo "# qcollectiongenerator $(BUILDDIR)/qthelp/ciscosparkapi.qhcp" + @echo "To view the help file:" + @echo "# assistant -collectionFile $(BUILDDIR)/qthelp/ciscosparkapi.qhc" + +.PHONY: applehelp +applehelp: + $(SPHINXBUILD) -b applehelp $(ALLSPHINXOPTS) $(BUILDDIR)/applehelp + @echo + @echo "Build finished. The help book is in $(BUILDDIR)/applehelp." + @echo "N.B. You won't be able to view it unless you put it in" \ + "~/Library/Documentation/Help or install it in your application" \ + "bundle." + +.PHONY: devhelp +devhelp: + $(SPHINXBUILD) -b devhelp $(ALLSPHINXOPTS) $(BUILDDIR)/devhelp + @echo + @echo "Build finished." + @echo "To view the help file:" + @echo "# mkdir -p $$HOME/.local/share/devhelp/ciscosparkapi" + @echo "# ln -s $(BUILDDIR)/devhelp $$HOME/.local/share/devhelp/ciscosparkapi" + @echo "# devhelp" + +.PHONY: epub +epub: + $(SPHINXBUILD) -b epub $(ALLSPHINXOPTS) $(BUILDDIR)/epub + @echo + @echo "Build finished. The epub file is in $(BUILDDIR)/epub." + +.PHONY: epub3 +epub3: + $(SPHINXBUILD) -b epub3 $(ALLSPHINXOPTS) $(BUILDDIR)/epub3 + @echo + @echo "Build finished. The epub3 file is in $(BUILDDIR)/epub3." + +.PHONY: latex +latex: + $(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex + @echo + @echo "Build finished; the LaTeX files are in $(BUILDDIR)/latex." + @echo "Run \`make' in that directory to run these through (pdf)latex" \ + "(use \`make latexpdf' here to do that automatically)." + +.PHONY: latexpdf +latexpdf: + $(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex + @echo "Running LaTeX files through pdflatex..." + $(MAKE) -C $(BUILDDIR)/latex all-pdf + @echo "pdflatex finished; the PDF files are in $(BUILDDIR)/latex." + +.PHONY: latexpdfja +latexpdfja: + $(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex + @echo "Running LaTeX files through platex and dvipdfmx..." + $(MAKE) -C $(BUILDDIR)/latex all-pdf-ja + @echo "pdflatex finished; the PDF files are in $(BUILDDIR)/latex." + +.PHONY: text +text: + $(SPHINXBUILD) -b text $(ALLSPHINXOPTS) $(BUILDDIR)/text + @echo + @echo "Build finished. The text files are in $(BUILDDIR)/text." + +.PHONY: man +man: + $(SPHINXBUILD) -b man $(ALLSPHINXOPTS) $(BUILDDIR)/man + @echo + @echo "Build finished. The manual pages are in $(BUILDDIR)/man." + +.PHONY: texinfo +texinfo: + $(SPHINXBUILD) -b texinfo $(ALLSPHINXOPTS) $(BUILDDIR)/texinfo + @echo + @echo "Build finished. The Texinfo files are in $(BUILDDIR)/texinfo." + @echo "Run \`make' in that directory to run these through makeinfo" \ + "(use \`make info' here to do that automatically)." + +.PHONY: info +info: + $(SPHINXBUILD) -b texinfo $(ALLSPHINXOPTS) $(BUILDDIR)/texinfo + @echo "Running Texinfo files through makeinfo..." + make -C $(BUILDDIR)/texinfo info + @echo "makeinfo finished; the Info files are in $(BUILDDIR)/texinfo." + +.PHONY: gettext +gettext: + $(SPHINXBUILD) -b gettext $(I18NSPHINXOPTS) $(BUILDDIR)/locale + @echo + @echo "Build finished. The message catalogs are in $(BUILDDIR)/locale." + +.PHONY: changes +changes: + $(SPHINXBUILD) -b changes $(ALLSPHINXOPTS) $(BUILDDIR)/changes + @echo + @echo "The overview file is in $(BUILDDIR)/changes." + +.PHONY: linkcheck +linkcheck: + $(SPHINXBUILD) -b linkcheck $(ALLSPHINXOPTS) $(BUILDDIR)/linkcheck + @echo + @echo "Link check complete; look for any errors in the above output " \ + "or in $(BUILDDIR)/linkcheck/output.txt." + +.PHONY: doctest +doctest: + $(SPHINXBUILD) -b doctest $(ALLSPHINXOPTS) $(BUILDDIR)/doctest + @echo "Testing of doctests in the sources finished, look at the " \ + "results in $(BUILDDIR)/doctest/output.txt." + +.PHONY: coverage +coverage: + $(SPHINXBUILD) -b coverage $(ALLSPHINXOPTS) $(BUILDDIR)/coverage + @echo "Testing of coverage in the sources finished, look at the " \ + "results in $(BUILDDIR)/coverage/python.txt." + +.PHONY: xml +xml: + $(SPHINXBUILD) -b xml $(ALLSPHINXOPTS) $(BUILDDIR)/xml + @echo + @echo "Build finished. The XML files are in $(BUILDDIR)/xml." + +.PHONY: pseudoxml +pseudoxml: + $(SPHINXBUILD) -b pseudoxml $(ALLSPHINXOPTS) $(BUILDDIR)/pseudoxml + @echo + @echo "Build finished. The pseudo-XML files are in $(BUILDDIR)/pseudoxml." + +.PHONY: dummy +dummy: + $(SPHINXBUILD) -b dummy $(ALLSPHINXOPTS) $(BUILDDIR)/dummy + @echo + @echo "Build finished. Dummy builder generates no files." diff --git a/docs/conf.py b/docs/conf.py new file mode 100644 index 0000000..d0e40c4 --- /dev/null +++ b/docs/conf.py @@ -0,0 +1,350 @@ +# -*- coding: utf-8 -*- +# +# ciscosparkapi documentation build configuration file, created by +# sphinx-quickstart on Thu Oct 20 09:54:48 2016. +# +# This file is execfile()d with the current directory set to its +# containing dir. +# +# Note that not all possible configuration values are present in this +# autogenerated file. +# +# All configuration values have a default; values that are commented out +# serve to show the default. + +# If extensions (or modules to document with autodoc) are in another directory, +# add these directories to sys.path here. If the directory is relative to the +# documentation root, use os.path.abspath to make it absolute, like shown here. +# +# import os +# import sys +# sys.path.insert(0, os.path.abspath('.')) + +# -- General configuration ------------------------------------------------ + +# If your documentation needs a minimal Sphinx version, state it here. +# +# needs_sphinx = '1.0' + +# Add any Sphinx extension module names here, as strings. They can be +# extensions coming with Sphinx (named 'sphinx.ext.*') or your custom +# ones. +extensions = [ + 'sphinx.ext.autodoc', + 'sphinx.ext.doctest', + 'sphinx.ext.intersphinx', + 'sphinx.ext.todo', + 'sphinx.ext.coverage', + 'sphinx.ext.viewcode', + 'sphinx.ext.githubpages', +] + +# Add any paths that contain templates here, relative to this directory. +templates_path = ['_templates'] + +# The suffix(es) of source filenames. +# You can specify multiple suffix as a list of string: +# +# source_suffix = ['.rst', '.md'] +source_suffix = '.rst' + +# The encoding of source files. +# +# source_encoding = 'utf-8-sig' + +# The master toctree document. +master_doc = 'index' + +# General information about the project. +project = u'ciscosparkapi' +copyright = u'2016, Cisco DevNet' +author = u'Chris Lunsford' + +# The version info for the project you're documenting, acts as replacement for +# |version| and |release|, also used in various other places throughout the +# built documents. +# +# The short X.Y version. +version = u'v0.3' +# The full version, including alpha/beta/rc tags. +release = u'v0.3' + +# The language for content autogenerated by Sphinx. Refer to documentation +# for a list of supported languages. +# +# This is also used if you do content translation via gettext catalogs. +# Usually you set "language" from the command line for these cases. +language = None + +# There are two options for replacing |today|: either, you set today to some +# non-false value, then it is used: +# +# today = '' +# +# Else, today_fmt is used as the format for a strftime call. +# +# today_fmt = '%B %d, %Y' + +# List of patterns, relative to source directory, that match files and +# directories to ignore when looking for source files. +# This patterns also effect to html_static_path and html_extra_path +exclude_patterns = ['_build', 'Thumbs.db', '.DS_Store'] + +# The reST default role (used for this markup: `text`) to use for all +# documents. +# +# default_role = None + +# If true, '()' will be appended to :func: etc. cross-reference text. +# +# add_function_parentheses = True + +# If true, the current module name will be prepended to all description +# unit titles (such as .. function::). +# +# add_module_names = True + +# If true, sectionauthor and moduleauthor directives will be shown in the +# output. They are ignored by default. +# +# show_authors = False + +# The name of the Pygments (syntax highlighting) style to use. +pygments_style = 'sphinx' + +# A list of ignored prefixes for module index sorting. +# modindex_common_prefix = [] + +# If true, keep warnings as "system message" paragraphs in the built documents. +# keep_warnings = False + +# If true, `todo` and `todoList` produce output, else they produce nothing. +todo_include_todos = True + + +# -- Options for HTML output ---------------------------------------------- + +# The theme to use for HTML and HTML Help pages. See the documentation for +# a list of builtin themes. +# +html_theme = 'alabaster' + +# Theme options are theme-specific and customize the look and feel of a theme +# further. For a list of options available for each theme, see the +# documentation. +# +# html_theme_options = {} + +# Add any paths that contain custom themes here, relative to this directory. +# html_theme_path = [] + +# The name for this set of Sphinx documents. +# " v documentation" by default. +# +# html_title = u'ciscosparkapi vv0.3' + +# A shorter title for the navigation bar. Default is the same as html_title. +# +# html_short_title = None + +# The name of an image file (relative to this directory) to place at the top +# of the sidebar. +# +# html_logo = None + +# The name of an image file (relative to this directory) to use as a favicon of +# the docs. This file should be a Windows icon file (.ico) being 16x16 or 32x32 +# pixels large. +# +# html_favicon = None + +# Add any paths that contain custom static files (such as style sheets) here, +# relative to this directory. They are copied after the builtin static files, +# so a file named "default.css" will overwrite the builtin "default.css". +html_static_path = ['_static'] + +# Add any extra paths that contain custom files (such as robots.txt or +# .htaccess) here, relative to this directory. These files are copied +# directly to the root of the documentation. +# +# html_extra_path = [] + +# If not None, a 'Last updated on:' timestamp is inserted at every page +# bottom, using the given strftime format. +# The empty string is equivalent to '%b %d, %Y'. +# +# html_last_updated_fmt = None + +# If true, SmartyPants will be used to convert quotes and dashes to +# typographically correct entities. +# +# html_use_smartypants = True + +# Custom sidebar templates, maps document names to template names. +# +# html_sidebars = {} + +# Additional templates that should be rendered to pages, maps page names to +# template names. +# +# html_additional_pages = {} + +# If false, no module index is generated. +# +# html_domain_indices = True + +# If false, no index is generated. +# +# html_use_index = True + +# If true, the index is split into individual pages for each letter. +# +# html_split_index = False + +# If true, links to the reST sources are added to the pages. +# +# html_show_sourcelink = True + +# If true, "Created using Sphinx" is shown in the HTML footer. Default is True. +# +# html_show_sphinx = True + +# If true, "(C) Copyright ..." is shown in the HTML footer. Default is True. +# +# html_show_copyright = True + +# If true, an OpenSearch description file will be output, and all pages will +# contain a tag referring to it. The value of this option must be the +# base URL from which the finished HTML is served. +# +# html_use_opensearch = '' + +# This is the file name suffix for HTML files (e.g. ".xhtml"). +# html_file_suffix = None + +# Language to be used for generating the HTML full-text search index. +# Sphinx supports the following languages: +# 'da', 'de', 'en', 'es', 'fi', 'fr', 'hu', 'it', 'ja' +# 'nl', 'no', 'pt', 'ro', 'ru', 'sv', 'tr', 'zh' +# +# html_search_language = 'en' + +# A dictionary with options for the search language support, empty by default. +# 'ja' uses this config value. +# 'zh' user can custom change `jieba` dictionary path. +# +# html_search_options = {'type': 'default'} + +# The name of a javascript file (relative to the configuration directory) that +# implements a search results scorer. If empty, the default will be used. +# +# html_search_scorer = 'scorer.js' + +# Output file base name for HTML help builder. +htmlhelp_basename = 'ciscosparkapidoc' + +# -- Options for LaTeX output --------------------------------------------- + +latex_elements = { + # The paper size ('letterpaper' or 'a4paper'). + # + # 'papersize': 'letterpaper', + + # The font size ('10pt', '11pt' or '12pt'). + # + # 'pointsize': '10pt', + + # Additional stuff for the LaTeX preamble. + # + # 'preamble': '', + + # Latex figure (float) alignment + # + # 'figure_align': 'htbp', +} + +# Grouping the document tree into LaTeX files. List of tuples +# (source start file, target name, title, +# author, documentclass [howto, manual, or own class]). +latex_documents = [ + (master_doc, 'ciscosparkapi.tex', u'ciscosparkapi Documentation', + u'Chris Lunsford', 'manual'), +] + +# The name of an image file (relative to this directory) to place at the top of +# the title page. +# +# latex_logo = None + +# For "manual" documents, if this is true, then toplevel headings are parts, +# not chapters. +# +# latex_use_parts = False + +# If true, show page references after internal links. +# +# latex_show_pagerefs = False + +# If true, show URL addresses after external links. +# +# latex_show_urls = False + +# Documents to append as an appendix to all manuals. +# +# latex_appendices = [] + +# It false, will not define \strong, \code, itleref, \crossref ... but only +# \sphinxstrong, ..., \sphinxtitleref, ... To help avoid clash with user added +# packages. +# +# latex_keep_old_macro_names = True + +# If false, no module index is generated. +# +# latex_domain_indices = True + + +# -- Options for manual page output --------------------------------------- + +# One entry per manual page. List of tuples +# (source start file, name, description, authors, manual section). +man_pages = [ + (master_doc, 'ciscosparkapi', u'ciscosparkapi Documentation', + [author], 1) +] + +# If true, show URL addresses after external links. +# +# man_show_urls = False + + +# -- Options for Texinfo output ------------------------------------------- + +# Grouping the document tree into Texinfo files. List of tuples +# (source start file, target name, title, author, +# dir menu entry, description, category) +texinfo_documents = [ + (master_doc, 'ciscosparkapi', u'ciscosparkapi Documentation', + author, 'ciscosparkapi', 'One line description of project.', + 'Miscellaneous'), +] + +# Documents to append as an appendix to all manuals. +# +# texinfo_appendices = [] + +# If false, no module index is generated. +# +# texinfo_domain_indices = True + +# How to display URL addresses: 'footnote', 'no', or 'inline'. +# +# texinfo_show_urls = 'footnote' + +# If true, do not generate a @detailmenu in the "Top" node's menu. +# +# texinfo_no_detailmenu = False + + +# Example configuration for intersphinx: refer to the Python standard library. +intersphinx_mapping = {'https://docs.python.org/': None} diff --git a/docs/index.rst b/docs/index.rst new file mode 100644 index 0000000..ee8cb1d --- /dev/null +++ b/docs/index.rst @@ -0,0 +1,22 @@ +.. ciscosparkapi documentation master file, created by + sphinx-quickstart on Thu Oct 20 09:54:48 2016. + You can adapt this file completely to your liking, but it should at least + contain the root `toctree` directive. + +Welcome to ciscosparkapi's documentation! +========================================= + +Contents: + +.. toctree:: + :maxdepth: 2 + + + +Indices and tables +================== + +* :ref:`genindex` +* :ref:`modindex` +* :ref:`search` + diff --git a/docs/make.bat b/docs/make.bat new file mode 100644 index 0000000..88d843f --- /dev/null +++ b/docs/make.bat @@ -0,0 +1,281 @@ +@ECHO OFF + +REM Command file for Sphinx documentation + +if "%SPHINXBUILD%" == "" ( + set SPHINXBUILD=sphinx-build +) +set BUILDDIR=_build +set ALLSPHINXOPTS=-d %BUILDDIR%/doctrees %SPHINXOPTS% . +set I18NSPHINXOPTS=%SPHINXOPTS% . +if NOT "%PAPER%" == "" ( + set ALLSPHINXOPTS=-D latex_paper_size=%PAPER% %ALLSPHINXOPTS% + set I18NSPHINXOPTS=-D latex_paper_size=%PAPER% %I18NSPHINXOPTS% +) + +if "%1" == "" goto help + +if "%1" == "help" ( + :help + echo.Please use `make ^` where ^ is one of + echo. html to make standalone HTML files + echo. dirhtml to make HTML files named index.html in directories + echo. singlehtml to make a single large HTML file + echo. pickle to make pickle files + echo. json to make JSON files + echo. htmlhelp to make HTML files and a HTML help project + echo. qthelp to make HTML files and a qthelp project + echo. devhelp to make HTML files and a Devhelp project + echo. epub to make an epub + echo. epub3 to make an epub3 + echo. latex to make LaTeX files, you can set PAPER=a4 or PAPER=letter + echo. text to make text files + echo. man to make manual pages + echo. texinfo to make Texinfo files + echo. gettext to make PO message catalogs + echo. changes to make an overview over all changed/added/deprecated items + echo. xml to make Docutils-native XML files + echo. pseudoxml to make pseudoxml-XML files for display purposes + echo. linkcheck to check all external links for integrity + echo. doctest to run all doctests embedded in the documentation if enabled + echo. coverage to run coverage check of the documentation if enabled + echo. dummy to check syntax errors of document sources + goto end +) + +if "%1" == "clean" ( + for /d %%i in (%BUILDDIR%\*) do rmdir /q /s %%i + del /q /s %BUILDDIR%\* + goto end +) + + +REM Check if sphinx-build is available and fallback to Python version if any +%SPHINXBUILD% 1>NUL 2>NUL +if errorlevel 9009 goto sphinx_python +goto sphinx_ok + +:sphinx_python + +set SPHINXBUILD=python -m sphinx.__init__ +%SPHINXBUILD% 2> nul +if errorlevel 9009 ( + echo. + echo.The 'sphinx-build' command was not found. Make sure you have Sphinx + echo.installed, then set the SPHINXBUILD environment variable to point + echo.to the full path of the 'sphinx-build' executable. Alternatively you + echo.may add the Sphinx directory to PATH. + echo. + echo.If you don't have Sphinx installed, grab it from + echo.http://sphinx-doc.org/ + exit /b 1 +) + +:sphinx_ok + + +if "%1" == "html" ( + %SPHINXBUILD% -b html %ALLSPHINXOPTS% %BUILDDIR%/html + if errorlevel 1 exit /b 1 + echo. + echo.Build finished. The HTML pages are in %BUILDDIR%/html. + goto end +) + +if "%1" == "dirhtml" ( + %SPHINXBUILD% -b dirhtml %ALLSPHINXOPTS% %BUILDDIR%/dirhtml + if errorlevel 1 exit /b 1 + echo. + echo.Build finished. The HTML pages are in %BUILDDIR%/dirhtml. + goto end +) + +if "%1" == "singlehtml" ( + %SPHINXBUILD% -b singlehtml %ALLSPHINXOPTS% %BUILDDIR%/singlehtml + if errorlevel 1 exit /b 1 + echo. + echo.Build finished. The HTML pages are in %BUILDDIR%/singlehtml. + goto end +) + +if "%1" == "pickle" ( + %SPHINXBUILD% -b pickle %ALLSPHINXOPTS% %BUILDDIR%/pickle + if errorlevel 1 exit /b 1 + echo. + echo.Build finished; now you can process the pickle files. + goto end +) + +if "%1" == "json" ( + %SPHINXBUILD% -b json %ALLSPHINXOPTS% %BUILDDIR%/json + if errorlevel 1 exit /b 1 + echo. + echo.Build finished; now you can process the JSON files. + goto end +) + +if "%1" == "htmlhelp" ( + %SPHINXBUILD% -b htmlhelp %ALLSPHINXOPTS% %BUILDDIR%/htmlhelp + if errorlevel 1 exit /b 1 + echo. + echo.Build finished; now you can run HTML Help Workshop with the ^ +.hhp project file in %BUILDDIR%/htmlhelp. + goto end +) + +if "%1" == "qthelp" ( + %SPHINXBUILD% -b qthelp %ALLSPHINXOPTS% %BUILDDIR%/qthelp + if errorlevel 1 exit /b 1 + echo. + echo.Build finished; now you can run "qcollectiongenerator" with the ^ +.qhcp project file in %BUILDDIR%/qthelp, like this: + echo.^> qcollectiongenerator %BUILDDIR%\qthelp\ciscosparkapi.qhcp + echo.To view the help file: + echo.^> assistant -collectionFile %BUILDDIR%\qthelp\ciscosparkapi.ghc + goto end +) + +if "%1" == "devhelp" ( + %SPHINXBUILD% -b devhelp %ALLSPHINXOPTS% %BUILDDIR%/devhelp + if errorlevel 1 exit /b 1 + echo. + echo.Build finished. + goto end +) + +if "%1" == "epub" ( + %SPHINXBUILD% -b epub %ALLSPHINXOPTS% %BUILDDIR%/epub + if errorlevel 1 exit /b 1 + echo. + echo.Build finished. The epub file is in %BUILDDIR%/epub. + goto end +) + +if "%1" == "epub3" ( + %SPHINXBUILD% -b epub3 %ALLSPHINXOPTS% %BUILDDIR%/epub3 + if errorlevel 1 exit /b 1 + echo. + echo.Build finished. The epub3 file is in %BUILDDIR%/epub3. + goto end +) + +if "%1" == "latex" ( + %SPHINXBUILD% -b latex %ALLSPHINXOPTS% %BUILDDIR%/latex + if errorlevel 1 exit /b 1 + echo. + echo.Build finished; the LaTeX files are in %BUILDDIR%/latex. + goto end +) + +if "%1" == "latexpdf" ( + %SPHINXBUILD% -b latex %ALLSPHINXOPTS% %BUILDDIR%/latex + cd %BUILDDIR%/latex + make all-pdf + cd %~dp0 + echo. + echo.Build finished; the PDF files are in %BUILDDIR%/latex. + goto end +) + +if "%1" == "latexpdfja" ( + %SPHINXBUILD% -b latex %ALLSPHINXOPTS% %BUILDDIR%/latex + cd %BUILDDIR%/latex + make all-pdf-ja + cd %~dp0 + echo. + echo.Build finished; the PDF files are in %BUILDDIR%/latex. + goto end +) + +if "%1" == "text" ( + %SPHINXBUILD% -b text %ALLSPHINXOPTS% %BUILDDIR%/text + if errorlevel 1 exit /b 1 + echo. + echo.Build finished. The text files are in %BUILDDIR%/text. + goto end +) + +if "%1" == "man" ( + %SPHINXBUILD% -b man %ALLSPHINXOPTS% %BUILDDIR%/man + if errorlevel 1 exit /b 1 + echo. + echo.Build finished. The manual pages are in %BUILDDIR%/man. + goto end +) + +if "%1" == "texinfo" ( + %SPHINXBUILD% -b texinfo %ALLSPHINXOPTS% %BUILDDIR%/texinfo + if errorlevel 1 exit /b 1 + echo. + echo.Build finished. The Texinfo files are in %BUILDDIR%/texinfo. + goto end +) + +if "%1" == "gettext" ( + %SPHINXBUILD% -b gettext %I18NSPHINXOPTS% %BUILDDIR%/locale + if errorlevel 1 exit /b 1 + echo. + echo.Build finished. The message catalogs are in %BUILDDIR%/locale. + goto end +) + +if "%1" == "changes" ( + %SPHINXBUILD% -b changes %ALLSPHINXOPTS% %BUILDDIR%/changes + if errorlevel 1 exit /b 1 + echo. + echo.The overview file is in %BUILDDIR%/changes. + goto end +) + +if "%1" == "linkcheck" ( + %SPHINXBUILD% -b linkcheck %ALLSPHINXOPTS% %BUILDDIR%/linkcheck + if errorlevel 1 exit /b 1 + echo. + echo.Link check complete; look for any errors in the above output ^ +or in %BUILDDIR%/linkcheck/output.txt. + goto end +) + +if "%1" == "doctest" ( + %SPHINXBUILD% -b doctest %ALLSPHINXOPTS% %BUILDDIR%/doctest + if errorlevel 1 exit /b 1 + echo. + echo.Testing of doctests in the sources finished, look at the ^ +results in %BUILDDIR%/doctest/output.txt. + goto end +) + +if "%1" == "coverage" ( + %SPHINXBUILD% -b coverage %ALLSPHINXOPTS% %BUILDDIR%/coverage + if errorlevel 1 exit /b 1 + echo. + echo.Testing of coverage in the sources finished, look at the ^ +results in %BUILDDIR%/coverage/python.txt. + goto end +) + +if "%1" == "xml" ( + %SPHINXBUILD% -b xml %ALLSPHINXOPTS% %BUILDDIR%/xml + if errorlevel 1 exit /b 1 + echo. + echo.Build finished. The XML files are in %BUILDDIR%/xml. + goto end +) + +if "%1" == "pseudoxml" ( + %SPHINXBUILD% -b pseudoxml %ALLSPHINXOPTS% %BUILDDIR%/pseudoxml + if errorlevel 1 exit /b 1 + echo. + echo.Build finished. The pseudo-XML files are in %BUILDDIR%/pseudoxml. + goto end +) + +if "%1" == "dummy" ( + %SPHINXBUILD% -b dummy %ALLSPHINXOPTS% %BUILDDIR%/dummy + if errorlevel 1 exit /b 1 + echo. + echo.Build finished. Dummy builder generates no files. + goto end +) + +:end From 88c8745d1afa9e38117813235225910ab39924d1 Mon Sep 17 00:00:00 2001 From: Chris Lunsford Date: Thu, 20 Oct 2016 11:06:12 -0400 Subject: [PATCH 10/37] Update .gitignore Begin organizing .gitignore to identify used and unused entries. --- .gitignore | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/.gitignore b/.gitignore index eeae94a..4df9211 100644 --- a/.gitignore +++ b/.gitignore @@ -1,6 +1,15 @@ +# TODO: Remove all unused entries + +# ciscosparkapi Project +dist/ +docs/_build/ +*.egg-info/ + + # Unversioned files basic-tests.py + # Byte-compiled / optimized / DLL files __pycache__/ *.py[cod] @@ -14,7 +23,6 @@ __pycache__/ env/ build/ develop-eggs/ -dist/ downloads/ eggs/ .eggs/ @@ -23,7 +31,6 @@ lib64/ parts/ sdist/ var/ -*.egg-info/ .installed.cfg *.egg @@ -63,9 +70,6 @@ instance/ # Scrapy stuff: .scrapy -# Sphinx documentation -docs/_build/ - # PyBuilder target/ From 9aff25ad9e08263d00cb0aeb336243b98b05ac15 Mon Sep 17 00:00:00 2001 From: Chris Lunsford Date: Thu, 20 Oct 2016 20:50:49 -0400 Subject: [PATCH 11/37] Add README.rst to MANIFEST.in --- MANIFEST.in | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/MANIFEST.in b/MANIFEST.in index dc32030..0bceaba 100644 --- a/MANIFEST.in +++ b/MANIFEST.in @@ -1,4 +1,4 @@ include LICENSE.txt -include README.md +include README.rst include versioneer.py include ciscosparkapi/_version.py From 6f473eae8f88ce07783c565e6269ce92eda7db83 Mon Sep 17 00:00:00 2001 From: Chris Lunsford Date: Mon, 24 Oct 2016 14:34:59 -0400 Subject: [PATCH 12/37] Initial User-API documentation Create initial index.rst and the the User-API documentation. --- ciscosparkapi/__init__.py | 29 ++++++++- docs/conf.py | 11 +++- docs/index.rst | 67 +++++++++++++++++--- docs/user/api.rst | 125 ++++++++++++++++++++++++++++++++++++++ docs/user/intro.rst | 4 ++ docs/user/tutorial.rst | 4 ++ 6 files changed, 228 insertions(+), 12 deletions(-) create mode 100644 docs/user/api.rst create mode 100644 docs/user/intro.rst create mode 100644 docs/user/tutorial.rst diff --git a/ciscosparkapi/__init__.py b/ciscosparkapi/__init__.py index 6d88ca8..e02dc0e 100644 --- a/ciscosparkapi/__init__.py +++ b/ciscosparkapi/__init__.py @@ -30,7 +30,34 @@ class CiscoSparkAPI(object): - """Cisco Spark API wrapper class.""" + """Cisco Spark API wrapper class. + + Creates a 'session' for all API calls through a created CiscoSparkAPI + object. The 'session' handles authentication, provides the needed headers, + and checks all responses for error conditions. + + CiscoSparkAPI wraps all of the individual Cisco Spark APIs and represents + them in a simple hierarchical structure. + + Attributes: + access_tokens(AccessTokensAPI): + :class:`Access Tokens API ` + people(PeopleAPI): + :class:`People API ` + rooms(RoomsAPI): + :class:`Rooms API ` + memberships(MembershipsAPI): + :class:`Memberships API ` + messages(MessagesAPI): + :class:`Messages API ` + teams(TeamsAPI): + :class:`Teams API ` + team_memberships(TeamMembershipsAPI): + :class:`Team Memberships API ` + webhooks(WebhooksAPI): + :class:`Webhooks API ` + + """ def __init__(self, access_token=None, base_url=DEFAULT_BASE_URL, timeout=60): diff --git a/docs/conf.py b/docs/conf.py index d0e40c4..2b9cdee 100644 --- a/docs/conf.py +++ b/docs/conf.py @@ -16,9 +16,9 @@ # add these directories to sys.path here. If the directory is relative to the # documentation root, use os.path.abspath to make it absolute, like shown here. # -# import os -# import sys -# sys.path.insert(0, os.path.abspath('.')) +import os +import sys +sys.path.insert(0, os.path.abspath('..')) # -- General configuration ------------------------------------------------ @@ -37,6 +37,7 @@ 'sphinx.ext.coverage', 'sphinx.ext.viewcode', 'sphinx.ext.githubpages', + 'sphinx.ext.napoleon' ] # Add any paths that contain templates here, relative to this directory. @@ -90,6 +91,10 @@ # This patterns also effect to html_static_path and html_extra_path exclude_patterns = ['_build', 'Thumbs.db', '.DS_Store'] +# autodoc Parameters +autodoc_member_order = 'bysource' +autodoc_default_flags = ['members', 'undoc-members'] + # The reST default role (used for this markup: `text`) to use for all # documents. # diff --git a/docs/index.rst b/docs/index.rst index ee8cb1d..cc6fbd4 100644 --- a/docs/index.rst +++ b/docs/index.rst @@ -1,16 +1,63 @@ -.. ciscosparkapi documentation master file, created by - sphinx-quickstart on Thu Oct 20 09:54:48 2016. - You can adapt this file completely to your liking, but it should at least - contain the root `toctree` directive. +============= +ciscosparkapi +============= -Welcome to ciscosparkapi's documentation! -========================================= +------------------------------------------------------------------------- +Simple, lightweight, scalable Python API wrapper for the Cisco Spark APIs +------------------------------------------------------------------------- -Contents: +Welcome to the docs! ciscosparkapi is a *community developed* Pythonic +wrapping of the Cisco Spark APIs. We represent all of the API components using +native Python tools. + +* Authentication, session headers, and connection info --> Wrapped in a + 'connection object' +* API Calls --> Wrapped in native method (function) calls hierarchically + structured underneath the 'connection object' +* Returned Spark Data Objects --> Wrapped and represented as native Python + objects +* Returned Lists of Objects --> Wrapped and represented as iterable sequences + yielding native Python objects + +This makes working with the Cisco Spark APIs in Python a native and natural +experience. You can easily interact with the Cisco Spark APIs in an +interactive Python session, quickly create some throw-away code that helps you +get something done in Spark, or you can leverage the API wrapper to cleanly add +Spark functionality to your project without having to write boilerplate code +for working with the Spark APIs. + +*ciscosparkapi helps you get things done faster.* We'll take care of the API +semantics, and you can focus on writing your code. + +**What is Cisco Spark?** + + "Cisco Spark is where all your work lives. Bring your teams together in a + place that makes it easy to keep people and work connected." + +Check out the official `Cisco Spark`_ website for more details and to create a +free account! + +**Looking for the official Cisco Spark API docs?** + +You can find them at `Spark for Developers`_ website. + + +User Docs +========= .. toctree:: - :maxdepth: 2 + :maxdepth: 2 + + user/intro + user/tutorial + user/api + + +Developer Docs +============== +Full developer docs are *coming soon*. For now, please see the contribution_ +instructions on the ciscosparkapi_ GitHub page to get started. Indices and tables @@ -20,3 +67,7 @@ Indices and tables * :ref:`modindex` * :ref:`search` +.. _Cisco Spark: https://www.ciscospark.com/ +.. _Spark for Developers: https://developer.ciscospark.com/ +.. _contribution: https://github.com/CiscoDevNet/ciscosparkapi#contribution +.. _ciscosparkapi: https://github.com/CiscoDevNet/ciscosparkapi diff --git a/docs/user/api.rst b/docs/user/api.rst new file mode 100644 index 0000000..3645c6a --- /dev/null +++ b/docs/user/api.rst @@ -0,0 +1,125 @@ +============================================ +ciscosparkapi Package User-API Documentation +============================================ + + +Main Interface +============== + +.. module:: ciscosparkapi + +All of the API calls have been wrapped and hierarchally organized underneath a +single ``CiscoSparkAPI`` class. + +.. autoclass:: CiscoSparkAPI() + :members: + :exclude-members: access_token, base_url, timeout + + .. automethod:: CiscoSparkAPI.__init__ + + +People API +---------- + +.. autoclass:: PeopleAPI() + + +Rooms API +--------- + +.. autoclass:: RoomsAPI() + + +Memberships API +--------------- + +.. autoclass:: MembershipsAPI() + + +Messages API +------------ + +.. autoclass:: MessagesAPI() + + +Teams API +--------- + +.. autoclass:: TeamsAPI() + + +Team Memberships API +-------------------- + +.. autoclass:: TeamMembershipsAPI() + + +Webhooks API +------------ + +.. autoclass:: WebhooksAPI() + + +Access Tokens API +----------------- + +.. autoclass:: AccessTokensAPI() + + +Exceptions +========== + +.. autoexception:: ciscosparkapiException + +.. autoexception:: SparkApiError + + +Spark Data Objects +================== + +Person +------ + +.. autoclass:: Person() + + +Room +---- + +.. autoclass:: Room() + + +Membership +---------- + +.. autoclass:: Membership() + + +Message +------- + +.. autoclass:: Message() + + +Team +---- + +.. autoclass:: Team() + + +Team Membership +--------------- + +.. autoclass:: TeamMembership() + + +Webhooks +-------- + +.. autoclass:: Webhook() + + +Access Token +------------ + +.. autoclass:: AccessToken() diff --git a/docs/user/intro.rst b/docs/user/intro.rst new file mode 100644 index 0000000..d9b878f --- /dev/null +++ b/docs/user/intro.rst @@ -0,0 +1,4 @@ +============ +Introduction +============ + diff --git a/docs/user/tutorial.rst b/docs/user/tutorial.rst new file mode 100644 index 0000000..5d598d2 --- /dev/null +++ b/docs/user/tutorial.rst @@ -0,0 +1,4 @@ +======== +Tutorial +======== + From d30f84c208cc92e6145b8facf06482350c36b08c Mon Sep 17 00:00:00 2001 From: Chris Lunsford Date: Thu, 3 Nov 2016 14:37:35 -0400 Subject: [PATCH 13/37] Add copyright references to docs --- docs/index.rst | 4 ++++ docs/user/api.rst | 3 +++ docs/user/intro.rst | 3 +++ docs/user/tutorial.rst | 3 +++ 4 files changed, 13 insertions(+) diff --git a/docs/index.rst b/docs/index.rst index cc6fbd4..2be1263 100644 --- a/docs/index.rst +++ b/docs/index.rst @@ -67,6 +67,10 @@ Indices and tables * :ref:`modindex` * :ref:`search` + +*Copyright (c) 2016 Cisco Systems, Inc.* + + .. _Cisco Spark: https://www.ciscospark.com/ .. _Spark for Developers: https://developer.ciscospark.com/ .. _contribution: https://github.com/CiscoDevNet/ciscosparkapi#contribution diff --git a/docs/user/api.rst b/docs/user/api.rst index 3645c6a..702d7ff 100644 --- a/docs/user/api.rst +++ b/docs/user/api.rst @@ -123,3 +123,6 @@ Access Token ------------ .. autoclass:: AccessToken() + + +*Copyright (c) 2016 Cisco Systems, Inc.* diff --git a/docs/user/intro.rst b/docs/user/intro.rst index d9b878f..c6e5f3e 100644 --- a/docs/user/intro.rst +++ b/docs/user/intro.rst @@ -2,3 +2,6 @@ Introduction ============ + + +*Copyright (c) 2016 Cisco Systems, Inc.* diff --git a/docs/user/tutorial.rst b/docs/user/tutorial.rst index 5d598d2..7a3dce0 100644 --- a/docs/user/tutorial.rst +++ b/docs/user/tutorial.rst @@ -2,3 +2,6 @@ Tutorial ======== + + +*Copyright (c) 2016 Cisco Systems, Inc.* From 5d9b20e21988f92c2d085db2c5d43d1361b548d4 Mon Sep 17 00:00:00 2001 From: Chris Lunsford Date: Thu, 3 Nov 2016 16:21:34 -0400 Subject: [PATCH 14/37] Rename helper.py to utils.py Rename and refactor helper.py to utils.py to make naming more consistent with established practices. --- ciscosparkapi/api/accesstokens.py | 2 +- ciscosparkapi/api/memberships.py | 2 +- ciscosparkapi/api/messages.py | 2 +- ciscosparkapi/api/people.py | 2 +- ciscosparkapi/api/rooms.py | 2 +- ciscosparkapi/api/teammemberships.py | 2 +- ciscosparkapi/api/teams.py | 2 +- ciscosparkapi/api/webhooks.py | 2 +- ciscosparkapi/restsession.py | 2 +- ciscosparkapi/{helper.py => utils.py} | 0 10 files changed, 9 insertions(+), 9 deletions(-) rename ciscosparkapi/{helper.py => utils.py} (100%) diff --git a/ciscosparkapi/api/accesstokens.py b/ciscosparkapi/api/accesstokens.py index 665a561..9b9eef6 100644 --- a/ciscosparkapi/api/accesstokens.py +++ b/ciscosparkapi/api/accesstokens.py @@ -19,7 +19,7 @@ import requests -from ciscosparkapi.helper import ERC, validate_base_url, \ +from ciscosparkapi.utils import ERC, validate_base_url, \ check_response_code, extract_and_parse_json from ciscosparkapi.sparkdata import SparkData diff --git a/ciscosparkapi/api/memberships.py b/ciscosparkapi/api/memberships.py index 28cd2f9..57b70de 100644 --- a/ciscosparkapi/api/memberships.py +++ b/ciscosparkapi/api/memberships.py @@ -14,7 +14,7 @@ from six import string_types from ciscosparkapi.exceptions import ciscosparkapiException -from ciscosparkapi.helper import generator_container +from ciscosparkapi.utils import generator_container from ciscosparkapi.restsession import RestSession from ciscosparkapi.sparkdata import SparkData diff --git a/ciscosparkapi/api/messages.py b/ciscosparkapi/api/messages.py index 2a5db63..2221437 100644 --- a/ciscosparkapi/api/messages.py +++ b/ciscosparkapi/api/messages.py @@ -15,7 +15,7 @@ from requests_toolbelt import MultipartEncoder from ciscosparkapi.exceptions import ciscosparkapiException -from ciscosparkapi.helper import generator_container, is_web_url, \ +from ciscosparkapi.utils import generator_container, is_web_url, \ is_local_file, open_local_file from ciscosparkapi.restsession import RestSession from ciscosparkapi.sparkdata import SparkData diff --git a/ciscosparkapi/api/people.py b/ciscosparkapi/api/people.py index 061d604..49fd772 100644 --- a/ciscosparkapi/api/people.py +++ b/ciscosparkapi/api/people.py @@ -13,7 +13,7 @@ from six import string_types from ciscosparkapi.exceptions import ciscosparkapiException -from ciscosparkapi.helper import generator_container +from ciscosparkapi.utils import generator_container from ciscosparkapi.restsession import RestSession from ciscosparkapi.sparkdata import SparkData diff --git a/ciscosparkapi/api/rooms.py b/ciscosparkapi/api/rooms.py index 1eb3a0a..9814603 100644 --- a/ciscosparkapi/api/rooms.py +++ b/ciscosparkapi/api/rooms.py @@ -13,7 +13,7 @@ from six import string_types from ciscosparkapi.exceptions import ciscosparkapiException -from ciscosparkapi.helper import generator_container +from ciscosparkapi.utils import generator_container from ciscosparkapi.restsession import RestSession from ciscosparkapi.sparkdata import SparkData diff --git a/ciscosparkapi/api/teammemberships.py b/ciscosparkapi/api/teammemberships.py index 3fe7b35..8c695db 100644 --- a/ciscosparkapi/api/teammemberships.py +++ b/ciscosparkapi/api/teammemberships.py @@ -14,7 +14,7 @@ from six import string_types from ciscosparkapi.exceptions import ciscosparkapiException -from ciscosparkapi.helper import generator_container +from ciscosparkapi.utils import generator_container from ciscosparkapi.restsession import RestSession from ciscosparkapi.sparkdata import SparkData diff --git a/ciscosparkapi/api/teams.py b/ciscosparkapi/api/teams.py index 1ff8143..8015f0d 100644 --- a/ciscosparkapi/api/teams.py +++ b/ciscosparkapi/api/teams.py @@ -13,7 +13,7 @@ from six import string_types from ciscosparkapi.exceptions import ciscosparkapiException -from ciscosparkapi.helper import generator_container +from ciscosparkapi.utils import generator_container from ciscosparkapi.restsession import RestSession from ciscosparkapi.sparkdata import SparkData diff --git a/ciscosparkapi/api/webhooks.py b/ciscosparkapi/api/webhooks.py index 711ee04..38c1fd0 100644 --- a/ciscosparkapi/api/webhooks.py +++ b/ciscosparkapi/api/webhooks.py @@ -13,7 +13,7 @@ from six import string_types from ciscosparkapi.exceptions import ciscosparkapiException -from ciscosparkapi.helper import generator_container +from ciscosparkapi.utils import generator_container from ciscosparkapi.restsession import RestSession from ciscosparkapi.sparkdata import SparkData diff --git a/ciscosparkapi/restsession.py b/ciscosparkapi/restsession.py index 165bba1..178d715 100644 --- a/ciscosparkapi/restsession.py +++ b/ciscosparkapi/restsession.py @@ -12,7 +12,7 @@ import requests from .exceptions import ciscosparkapiException -from .helper import ERC, validate_base_url, \ +from .utils import ERC, validate_base_url, \ raise_if_extra_kwargs, check_response_code, extract_and_parse_json diff --git a/ciscosparkapi/helper.py b/ciscosparkapi/utils.py similarity index 100% rename from ciscosparkapi/helper.py rename to ciscosparkapi/utils.py From 4e920aa1c7f49abe9f6d9a0386afbf0d87702c1f Mon Sep 17 00:00:00 2001 From: Chris Lunsford Date: Thu, 3 Nov 2016 17:43:59 -0400 Subject: [PATCH 15/37] Make xxxAPI.session private; Update docstrings for auto-documentation MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The session attribute in an API object should not be ‘public’, and therefore should be prefixed by an ‘_’. Update API classes’ method docstrings to eliminate warnings and enable proper auto-documentation by Sphinx autodoc extension. --- ciscosparkapi/api/memberships.py | 25 ++++++++------------ ciscosparkapi/api/messages.py | 25 +++++++++----------- ciscosparkapi/api/people.py | 17 ++++++-------- ciscosparkapi/api/rooms.py | 34 ++++++++++++---------------- ciscosparkapi/api/teammemberships.py | 26 ++++++++------------- ciscosparkapi/api/teams.py | 23 ++++++++----------- ciscosparkapi/api/webhooks.py | 29 ++++++++++-------------- 7 files changed, 73 insertions(+), 106 deletions(-) diff --git a/ciscosparkapi/api/memberships.py b/ciscosparkapi/api/memberships.py index 57b70de..7e3e854 100644 --- a/ciscosparkapi/api/memberships.py +++ b/ciscosparkapi/api/memberships.py @@ -79,10 +79,6 @@ class MembershipsAPI(object): Wrappers the Cisco Spark Memberships-API and exposes the API calls as Python method calls that return native Python objects. - Attributes: - session(RestSession): The RESTful session object to be used for API - calls to the Cisco Spark service. - """ def __init__(self, session): @@ -98,7 +94,7 @@ def __init__(self, session): """ assert isinstance(session, RestSession) super(MembershipsAPI, self).__init__() - self.session = session + self._session = session @generator_container def list(self, roomId=None, personId=None, personEmail=None, max=None): @@ -133,8 +129,9 @@ def list(self, roomId=None, personId=None, personEmail=None, max=None): the Spark service per request. - Yields: - Membership: The the next membership from the Cisco Spark query. + Returns: + GeneratorContainer: When iterated, the GeneratorContainer, yields + the memberships returned from the Cisco Spark query. Raises: AssertionError: If the parameter types are incorrect. @@ -164,7 +161,7 @@ def list(self, roomId=None, personId=None, personEmail=None, max=None): if max: params['max'] = max # API request - get items - items = self.session.get_items('memberships', params=params) + items = self._session.get_items('memberships', params=params) # Yield Person objects created from the returned items JSON objects for item in items: yield Membership(item) @@ -212,7 +209,7 @@ def create(self, roomId, personId=None, personEmail=None, raise ciscosparkapiException(error_message) post_data['isModerator'] = isModerator # API request - json_obj = self.session.post('memberships', json=post_data) + json_obj = self._session.post('memberships', json=post_data) # Return a Membership object created from the response JSON data return Membership(json_obj) @@ -233,7 +230,7 @@ def get(self, membershipId): # Process args assert isinstance(membershipId, string_types) # API request - json_obj = self.session.get('memberships/'+membershipId) + json_obj = self._session.get('memberships/' + membershipId) # Return a Membership object created from the response JSON data return Membership(json_obj) @@ -243,8 +240,6 @@ def update(self, membershipId, **update_attributes): Args: membershipId(string_types): The membershipId of the membership to be updated. - - **update_attributes: isModerator(bool): If True, sets the person as a moderator for the room. If False, removes the person as a moderator for the room. @@ -265,8 +260,8 @@ def update(self, membershipId, **update_attributes): "argument must be specified." raise ciscosparkapiException(error_message) # API request - json_obj = self.session.post('memberships/'+membershipId, - json=update_attributes) + json_obj = self._session.post('memberships/' + membershipId, + json=update_attributes) # Return a Membership object created from the response JSON data return Membership(json_obj) @@ -285,4 +280,4 @@ def delete(self, membershipId): # Process args assert isinstance(membershipId, string_types) # API request - self.session.delete('memberships/'+membershipId) + self._session.delete('memberships/' + membershipId) diff --git a/ciscosparkapi/api/messages.py b/ciscosparkapi/api/messages.py index 2221437..c5d3f2a 100644 --- a/ciscosparkapi/api/messages.py +++ b/ciscosparkapi/api/messages.py @@ -103,10 +103,6 @@ class MessagesAPI(object): Wrappers the Cisco Spark Messages-API and exposes the API calls as Python method calls that return native Python objects. - Attributes: - session(RestSession): The RESTful session object to be used for API - calls to the Cisco Spark service. - """ def __init__(self, session): @@ -122,7 +118,7 @@ def __init__(self, session): """ assert isinstance(session, RestSession) super(MessagesAPI, self).__init__() - self.session = session + self._session = session @generator_container def list(self, roomId, mentionedPeople=None, before=None, @@ -154,8 +150,9 @@ def list(self, roomId, mentionedPeople=None, before=None, max(int): Limit the maximum number of messages returned from the Spark service per request. - Yields: - Message: The the next message from the Cisco Spark query. + Returns: + GeneratorContainer: When iterated, the GeneratorContainer, yields + the messages returned by the Cisco Spark query. Raises: AssertionError: If the parameter types are incorrect. @@ -180,7 +177,7 @@ def list(self, roomId, mentionedPeople=None, before=None, if max: params['max'] = max # API request - get items - items = self.session.get_items('messages', params=params) + items = self._session.get_items('messages', params=params) # Yield Message objects created from the returned items JSON objects for item in items: yield Message(item) @@ -273,13 +270,13 @@ def create(self, roomId=None, toPersonId=None, toPersonEmail=None, try: multipart_data = MultipartEncoder(post_data) headers = {'Content-type': multipart_data.content_type} - json_obj = self.session.post('messages', - data=multipart_data, - headers=headers) + json_obj = self._session.post('messages', + data=multipart_data, + headers=headers) finally: post_data['files'].file_object.close() else: - json_obj = self.session.post('messages', json=post_data) + json_obj = self._session.post('messages', json=post_data) # Return a Message object created from the response JSON data return Message(json_obj) @@ -300,7 +297,7 @@ def get(self, messageId): # Process args assert isinstance(messageId, string_types) # API request - json_obj = self.session.get('messages/'+messageId) + json_obj = self._session.get('messages/' + messageId) # Return a Message object created from the response JSON data return Message(json_obj) @@ -319,4 +316,4 @@ def delete(self, messageId): # Process args assert isinstance(messageId, string_types) # API request - self.session.delete('messages/'+messageId) + self._session.delete('messages/' + messageId) diff --git a/ciscosparkapi/api/people.py b/ciscosparkapi/api/people.py index 49fd772..4ad0127 100644 --- a/ciscosparkapi/api/people.py +++ b/ciscosparkapi/api/people.py @@ -74,10 +74,6 @@ class PeopleAPI(object): Wrappers the Cisco Spark People-API and exposes the API calls as Python method calls that return native Python objects. - Attributes: - session(RestSession): The RESTful session object to be used for API - calls to the Cisco Spark service. - """ def __init__(self, session): @@ -93,7 +89,7 @@ def __init__(self, session): """ assert isinstance(session, RestSession) super(PeopleAPI, self).__init__() - self.session = session + self._session = session @generator_container def list(self, email=None, displayName=None, max=None): @@ -118,8 +114,9 @@ def list(self, email=None, displayName=None, max=None): max(int): Limits the maximum number of people returned from the Spark service per request. - Yields: - Person: The the next person from the Cisco Spark query. + Returns: + GeneratorContainer: When iterated, the GeneratorContainer, yields + the people returned by the Cisco Spark query. Raises: AssertionError: If the parameter types are incorrect. @@ -144,7 +141,7 @@ def list(self, email=None, displayName=None, max=None): if max: params['max'] = max # API request - get items - items = self.session.get_items('people', params=params) + items = self._session.get_items('people', params=params) # Yield Person objects created from the returned items JSON objects for item in items: yield Person(item) @@ -166,7 +163,7 @@ def get(self, personId): # Process args assert isinstance(personId, string_types) # API request - json_obj = self.session.get('people/'+personId) + json_obj = self._session.get('people/' + personId) # Return a Person object created from the response JSON data return Person(json_obj) @@ -178,6 +175,6 @@ def me(self): """ # API request - json_obj = self.session.get('people/me') + json_obj = self._session.get('people/me') # Return a Person object created from the response JSON data return Person(json_obj) diff --git a/ciscosparkapi/api/rooms.py b/ciscosparkapi/api/rooms.py index 9814603..fd6cf11 100644 --- a/ciscosparkapi/api/rooms.py +++ b/ciscosparkapi/api/rooms.py @@ -85,10 +85,6 @@ class RoomsAPI(object): Wrappers the Cisco Spark Rooms-API and exposes the API calls as Python method calls that return native Python objects. - Attributes: - session(RestSession): The RESTful session object to be used for API - calls to the Cisco Spark service. - """ def __init__(self, session): @@ -104,7 +100,7 @@ def __init__(self, session): """ assert isinstance(session, RestSession) super(RoomsAPI, self).__init__() - self.session = session + self._session = session @generator_container def list(self, max=None, **query_params): @@ -125,15 +121,15 @@ def list(self, max=None, **query_params): Args: max(int): Limits the maximum number of rooms returned from the Spark service per request. - **query_params: - teamId(string_types): Limit the rooms to those associated with - a team. - type(string_types): - 'direct': returns all 1-to-1 rooms. - 'group': returns all group rooms. + teamId(string_types): Limit the rooms to those associated with a + team. + type(string_types): + 'direct': returns all 1-to-1 rooms. + 'group': returns all group rooms. - Yields: - Room: The the next room from the Cisco Spark query. + Returns: + GeneratorContainer: When iterated, the GeneratorContainer, yields + the rooms returned from the Cisco Spark query. Raises: AssertionError: If the parameter types are incorrect. @@ -149,7 +145,7 @@ def list(self, max=None, **query_params): if query_params: params.update(query_params) # API request - get items - items = self.session.get_items('rooms', params=params) + items = self._session.get_items('rooms', params=params) # Yield Room objects created from the returned items JSON objects for item in items: yield Room(item) @@ -180,7 +176,7 @@ def create(self, title, teamId=None): if teamId: post_data['teamId'] = teamId # API request - json_obj = self.session.post('rooms', json=post_data) + json_obj = self._session.post('rooms', json=post_data) # Return a Room object created from the response JSON data return Room(json_obj) @@ -201,7 +197,7 @@ def get(self, roomId): # Process args assert isinstance(roomId, string_types) # API request - json_obj = self.session.get('rooms/'+roomId) + json_obj = self._session.get('rooms/' + roomId) # Return a Room object created from the response JSON data return Room(json_obj) @@ -210,8 +206,6 @@ def update(self, roomId, **update_attributes): Args: roomId(string_types): The roomId of the room to be updated. - - **update_attributes: title(string_types): A user-friendly name for the room. Returns: @@ -231,7 +225,7 @@ def update(self, roomId, **update_attributes): "argument must be specified." raise ciscosparkapiException(error_message) # API request - json_obj = self.session.post('rooms/'+roomId, json=update_attributes) + json_obj = self._session.post('rooms/' + roomId, json=update_attributes) # Return a Room object created from the response JSON data return Room(json_obj) @@ -249,4 +243,4 @@ def delete(self, roomId): # Process args assert isinstance(roomId, string_types) # API request - self.session.delete('rooms/'+roomId) + self._session.delete('rooms/' + roomId) diff --git a/ciscosparkapi/api/teammemberships.py b/ciscosparkapi/api/teammemberships.py index 8c695db..ce026d6 100644 --- a/ciscosparkapi/api/teammemberships.py +++ b/ciscosparkapi/api/teammemberships.py @@ -76,10 +76,6 @@ class TeamMembershipsAPI(object): Wrappers the Cisco Spark Team-Memberships-API and exposes the API calls as Python method calls that return native Python objects. - Attributes: - session(RestSession): The RESTful session object to be used for API - calls to the Cisco Spark service. - """ def __init__(self, session): @@ -95,7 +91,7 @@ def __init__(self, session): """ assert isinstance(session, RestSession) super(TeamMembershipsAPI, self).__init__() - self.session = session + self._session = session @generator_container def list(self, teamId=None, max=None): @@ -122,9 +118,9 @@ def list(self, teamId=None, max=None): the Spark service per request. - Yields: - TeamMembership: The the next team membership from the Cisco Spark - query. + Returns: + GeneratorContainer: When iterated, the GeneratorContainer, yields + the team memberships returned by the Cisco Spark query. Raises: AssertionError: If the parameter types are incorrect. @@ -140,7 +136,7 @@ def list(self, teamId=None, max=None): if max: params['max'] = max # API request - get items - items = self.session.get_items('team/memberships', params=params) + items = self._session.get_items('team/memberships', params=params) # Yield Person objects created from the returned items JSON objects for item in items: yield TeamMembership(item) @@ -188,7 +184,7 @@ def create(self, teamId, personId=None, personEmail=None, raise ciscosparkapiException(error_message) post_data['isModerator'] = isModerator # API request - json_obj = self.session.post('team/memberships', json=post_data) + json_obj = self._session.post('team/memberships', json=post_data) # Return a TeamMembership object created from the response JSON data return TeamMembership(json_obj) @@ -210,7 +206,7 @@ def get(self, membershipId): # Process args assert isinstance(membershipId, string_types) # API request - json_obj = self.session.get('team/memberships/'+membershipId) + json_obj = self._session.get('team/memberships/' + membershipId) # Return a TeamMembership object created from the response JSON data return TeamMembership(json_obj) @@ -220,8 +216,6 @@ def update(self, membershipId, **update_attributes): Args: membershipId(string_types): The membershipId of the team membership to be updated. - - **update_attributes: isModerator(bool): If True, sets the person as a moderator for the team. If False, removes the person as a moderator for the team. @@ -242,8 +236,8 @@ def update(self, membershipId, **update_attributes): "argument must be specified." raise ciscosparkapiException(error_message) # API request - json_obj = self.session.post('team/memberships/'+membershipId, - json=update_attributes) + json_obj = self._session.post('team/memberships/' + membershipId, + json=update_attributes) # Return a TeamMembership object created from the response JSON data return TeamMembership(json_obj) @@ -262,4 +256,4 @@ def delete(self, membershipId): # Process args assert isinstance(membershipId, string_types) # API request - self.session.delete('team/memberships/'+membershipId) + self._session.delete('team/memberships/' + membershipId) diff --git a/ciscosparkapi/api/teams.py b/ciscosparkapi/api/teams.py index 8015f0d..8498b0c 100644 --- a/ciscosparkapi/api/teams.py +++ b/ciscosparkapi/api/teams.py @@ -58,10 +58,6 @@ class TeamsAPI(object): Wrappers the Cisco Spark Teams-API and exposes the API calls as Python method calls that return native Python objects. - Attributes: - session(RestSession): The RESTful session object to be used for API - calls to the Cisco Spark service. - """ def __init__(self, session): @@ -77,7 +73,7 @@ def __init__(self, session): """ assert isinstance(session, RestSession) super(TeamsAPI, self).__init__() - self.session = session + self._session = session @generator_container def list(self, max=None): @@ -97,8 +93,9 @@ def list(self, max=None): max(int): Limits the maximum number of teams returned from the Spark service per request. - Yields: - Team: The the next team from the Cisco Spark query. + Returns: + GeneratorContainer: When iterated, the GeneratorContainer, yields + the teams returned by the Cisco Spark query. Raises: AssertionError: If the parameter types are incorrect. @@ -111,7 +108,7 @@ def list(self, max=None): if max: params['max'] = max # API request - get items - items = self.session.get_items('teams', params=params) + items = self._session.get_items('teams', params=params) # Yield Team objects created from the returned items JSON objects for item in items: yield Team(item) @@ -137,7 +134,7 @@ def create(self, name): post_data = {} post_data['name'] = name # API request - json_obj = self.session.post('teams', json=post_data) + json_obj = self._session.post('teams', json=post_data) # Return a Team object created from the response JSON data return Team(json_obj) @@ -158,7 +155,7 @@ def get(self, teamId): # Process args assert isinstance(teamId, string_types) # API request - json_obj = self.session.get('teams/'+teamId) + json_obj = self._session.get('teams/' + teamId) # Return a Team object created from the response JSON data return Team(json_obj) @@ -167,8 +164,6 @@ def update(self, teamId, **update_attributes): Args: teamId(string_types): The teamId of the team to be updated. - - **update_attributes: name(string_types): A user-friendly name for the team. Returns: @@ -188,7 +183,7 @@ def update(self, teamId, **update_attributes): "argument must be specified." raise ciscosparkapiException(error_message) # API request - json_obj = self.session.post('teams/'+teamId, json=update_attributes) + json_obj = self._session.post('teams/' + teamId, json=update_attributes) # Return a Team object created from the response JSON data return Team(json_obj) @@ -206,4 +201,4 @@ def delete(self, teamId): # Process args assert isinstance(teamId, string_types) # API request - self.session.delete('teams/'+teamId) + self._session.delete('teams/' + teamId) diff --git a/ciscosparkapi/api/webhooks.py b/ciscosparkapi/api/webhooks.py index 38c1fd0..5698f0c 100644 --- a/ciscosparkapi/api/webhooks.py +++ b/ciscosparkapi/api/webhooks.py @@ -103,10 +103,6 @@ class WebhooksAPI(object): Wrappers the Cisco Spark Webhooks-API and exposes the API calls as Python method calls that return native Python objects. - Attributes: - session(RestSession): The RESTful session object to be used for API - calls to the Cisco Spark service. - """ def __init__(self, session): @@ -122,7 +118,7 @@ def __init__(self, session): """ assert isinstance(session, RestSession) super(WebhooksAPI, self).__init__() - self.session = session + self._session = session @generator_container def list(self, max=None): @@ -142,8 +138,9 @@ def list(self, max=None): max(int): Limits the maximum number of webhooks returned from the Spark service per request. - Yields: - Webhook: The the next webhook from the Cisco Spark query. + Returns: + GeneratorContainer: When iterated, the GeneratorContainer, yields + the webhooks returned by the Cisco Spark query. Raises: AssertionError: If the parameter types are incorrect. @@ -156,7 +153,7 @@ def list(self, max=None): if max: params['max'] = max # API request - get items - items = self.session.get_items('webhooks', params=params) + items = self._session.get_items('webhooks', params=params) # Yield Webhook objects created from the returned items JSON objects for item in items: yield Webhook(item) @@ -199,7 +196,7 @@ def create(self, name, targetUrl, resource, event, if secret: post_data['secret'] = secret # API request - json_obj = self.session.post('webhooks', json=post_data) + json_obj = self._session.post('webhooks', json=post_data) # Return a Webhook object created from the response JSON data return Webhook(json_obj) @@ -220,7 +217,7 @@ def get(self, webhookId): # Process args assert isinstance(webhookId, string_types) # API request - json_obj = self.session.get('webhooks/' + webhookId) + json_obj = self._session.get('webhooks/' + webhookId) # Return a Webhook object created from the response JSON data return Webhook(json_obj) @@ -230,11 +227,9 @@ def update(self, webhookId, **update_attributes): Args: webhookId(string_types): The webhookId of the webhook to be updated. - - **update_attributes: - name(string_types): A user-friendly name for this webhook. - targetUrl(string_types): The URL that receives POST requests - for each event. + name(string_types): A user-friendly name for this webhook. + targetUrl(string_types): The URL that receives POST requests for + each event. Returns: Webhook: With the updated Spark webhook details. @@ -253,7 +248,7 @@ def update(self, webhookId, **update_attributes): "argument must be specified." raise ciscosparkapiException(error_message) # API request - json_obj = self.session.put('webhooks/' + webhookId, + json_obj = self._session.put('webhooks/' + webhookId, json=update_attributes) # Return a Webhook object created from the response JSON data return Webhook(json_obj) @@ -273,4 +268,4 @@ def delete(self, webhookId): # Process args assert isinstance(webhookId, string_types) # API request - self.session.delete('webhooks/' + webhookId) + self._session.delete('webhooks/' + webhookId) From a2d5f7cfe19cf9a202368956d23970d4542ee029 Mon Sep 17 00:00:00 2001 From: Chris Lunsford Date: Fri, 4 Nov 2016 09:30:23 -0400 Subject: [PATCH 16/37] Change Versioneer version numbering style MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The ‘pep440-post’ style better reflects post-release commits, and enables building of installable dev-builds with sortable version numbers. Additionally, going forward, the package release tags will incorporate a release status flag (a - alpha, b - beta, rc - release candidate) in the format: major.minor[flag]micro --- setup.cfg | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/setup.cfg b/setup.cfg index f527b9a..72c0c95 100644 --- a/setup.cfg +++ b/setup.cfg @@ -1,5 +1,5 @@ [versioneer] VCS = git -style = pep440 +style = pep440-post versionfile_source = ciscosparkapi/_version.py tag_prefix = v From 4f25159b1e694f3e29b3645f1928935ef7b37f34 Mon Sep 17 00:00:00 2001 From: Chris Lunsford Date: Fri, 4 Nov 2016 13:17:25 -0400 Subject: [PATCH 17/37] Document __init__.py Update docstrings and User API Doc for the main package __init__.py module. --- ciscosparkapi/__init__.py | 69 +++++++++++++++---------------- docs/user/api.rst | 85 ++++++++++++++++++++++++++++----------- 2 files changed, 95 insertions(+), 59 deletions(-) diff --git a/ciscosparkapi/__init__.py b/ciscosparkapi/__init__.py index 6aff6db..37df1b6 100644 --- a/ciscosparkapi/__init__.py +++ b/ciscosparkapi/__init__.py @@ -33,10 +33,11 @@ DEFAULT_BASE_URL = 'https://api.ciscospark.com/v1/' +DEFAULT_TIMEOUT = 60 class CiscoSparkAPI(object): - """Cisco Spark API wrapper class. + """Cisco Spark API wrapper. Creates a 'session' for all API calls through a created CiscoSparkAPI object. The 'session' handles authentication, provides the needed headers, @@ -45,29 +46,27 @@ class CiscoSparkAPI(object): CiscoSparkAPI wraps all of the individual Cisco Spark APIs and represents them in a simple hierarchical structure. - Attributes: - access_tokens(AccessTokensAPI): - :class:`Access Tokens API ` - people(PeopleAPI): - :class:`People API ` - rooms(RoomsAPI): - :class:`Rooms API ` - memberships(MembershipsAPI): - :class:`Memberships API ` - messages(MessagesAPI): - :class:`Messages API ` - teams(TeamsAPI): - :class:`Teams API ` - team_memberships(TeamMembershipsAPI): - :class:`Team Memberships API ` - webhooks(WebhooksAPI): - :class:`Webhooks API ` + :CiscoSparkAPI: :class:`people ` + + :class:`rooms ` + + :class:`memberships ` + + :class:`messages ` + + :class:`teams ` + + :class:`team_memberships ` + + :class:`webhooks ` + + :class:`access_tokens ` """ def __init__(self, access_token=None, base_url=DEFAULT_BASE_URL, - timeout=60): - """Init a new CiscoSparkAPI object. + timeout=DEFAULT_TIMEOUT): + """Create a new CiscoSparkAPI object. An access token must be used when interacting with the Cisco Spark API. This package supports two methods for you to provide that access token: @@ -76,9 +75,7 @@ def __init__(self, access_token=None, base_url=DEFAULT_BASE_URL, argument, when creating a new CiscoSparkAPI object. 2. If an access_token argument is not supplied, the package checks - for a SPARK_ACCESS_TOKEN environment variable, and if available, - it uses the value of this environment variable as the access_token - when new CiscoSparkAPI objects are created. + for a SPARK_ACCESS_TOKEN environment variable. A ciscosparkapiException is raised if an access token is not provided via one of these two methods. @@ -91,10 +88,10 @@ def __init__(self, access_token=None, base_url=DEFAULT_BASE_URL, individual API endpoint suffixes. Defaults to ciscosparkapi.DEFAULT_BASE_URL. timeout(int): Timeout (in seconds) for RESTful HTTP requests. - Defaults to 60 seconds. + Defaults to ciscosparkapi.DEFAULT_TIMEOUT. Returns: - CiscoSparkAPI: A new CiscoSparkAPI connection object. + CiscoSparkAPI: A new CiscoSparkAPI object. Raises: AssertionError: If the parameter types are incorrect. @@ -122,26 +119,26 @@ def __init__(self, access_token=None, base_url=DEFAULT_BASE_URL, # All of the API calls associated with a CiscoSparkAPI object will # leverage a single RESTful 'session' connecting to the Cisco Spark # cloud. - self.session = RestSession(access_token, base_url, **session_args) + self._session = RestSession(access_token, base_url, **session_args) # Spark API wrappers + self.people = PeopleAPI(self._session) + self.rooms = RoomsAPI(self._session) + self.memberships = MembershipsAPI(self._session) + self.messages = MessagesAPI(self._session) + self.teams = TeamsAPI(self._session) + self.team_memberships = TeamMembershipsAPI(self._session) + self.webhooks = WebhooksAPI(self._session) self.access_tokens = AccessTokensAPI(self.base_url, timeout=timeout) - self.people = PeopleAPI(self.session) - self.rooms = RoomsAPI(self.session) - self.memberships = MembershipsAPI(self.session) - self.messages = MessagesAPI(self.session) - self.teams = TeamsAPI(self.session) - self.team_memberships = TeamMembershipsAPI(self.session) - self.webhooks = WebhooksAPI(self.session) @property def access_token(self): - return self.session.access_token + return self._session.access_token @property def base_url(self): - return self.session.base_url + return self._session.base_url @property def timeout(self): - return self.session.timeout + return self._session.timeout diff --git a/docs/user/api.rst b/docs/user/api.rst index 702d7ff..ee19e97 100644 --- a/docs/user/api.rst +++ b/docs/user/api.rst @@ -1,6 +1,8 @@ -============================================ -ciscosparkapi Package User-API Documentation -============================================ +.. _User API Doc: + +============ +User API Doc +============ Main Interface @@ -8,8 +10,8 @@ Main Interface .. module:: ciscosparkapi -All of the API calls have been wrapped and hierarchally organized underneath a -single ``CiscoSparkAPI`` class. +All of the API calls have been wrapped and hierarchically organized underneath +a single :class:`CiscoSparkAPI` class. .. autoclass:: CiscoSparkAPI() :members: @@ -18,54 +20,72 @@ single ``CiscoSparkAPI`` class. .. automethod:: CiscoSparkAPI.__init__ -People API ----------- +.. _people: + +people +------ .. autoclass:: PeopleAPI() -Rooms API ---------- +.. _rooms: + +rooms +----- .. autoclass:: RoomsAPI() -Memberships API ---------------- +.. _memberships: + +memberships +----------- .. autoclass:: MembershipsAPI() -Messages API ------------- +.. _messages: + +messages +-------- .. autoclass:: MessagesAPI() -Teams API ---------- +.. _teams: + +teams +----- .. autoclass:: TeamsAPI() -Team Memberships API --------------------- +.. _team_memberships: + +team_memberships +---------------- .. autoclass:: TeamMembershipsAPI() -Webhooks API ------------- +.. _webhooks: + +webhooks +-------- .. autoclass:: WebhooksAPI() -Access Tokens API ------------------ +.. _access_tokens: + +access_tokens +------------- .. autoclass:: AccessTokensAPI() +.. _Exceptions: + Exceptions ========== @@ -74,51 +94,70 @@ Exceptions .. autoexception:: SparkApiError +.. _Spark Data Objects: + Spark Data Objects ================== + +.. _Person: + Person ------ .. autoclass:: Person() +.. _Room: + Room ---- .. autoclass:: Room() +.. _Membership: + Membership ---------- .. autoclass:: Membership() +.. _Message: + Message ------- .. autoclass:: Message() +.. _Team: + Team ---- .. autoclass:: Team() +.. _Team Membership: + Team Membership --------------- .. autoclass:: TeamMembership() -Webhooks --------- +.. _Webhook: + +Webhook +------- .. autoclass:: Webhook() +.. _Access Token: + Access Token ------------ From 3d3c677ed06e0430212efb0a57e13db7c0dc6f42 Mon Sep 17 00:00:00 2001 From: Chris Lunsford Date: Fri, 4 Nov 2016 13:18:44 -0400 Subject: [PATCH 18/37] Update copyright in docs/conf.py This copyright reference shows up in the footers of the HTML docs generated by Sphinx. --- docs/conf.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/conf.py b/docs/conf.py index 2b9cdee..9ff3230 100644 --- a/docs/conf.py +++ b/docs/conf.py @@ -58,7 +58,7 @@ # General information about the project. project = u'ciscosparkapi' -copyright = u'2016, Cisco DevNet' +copyright = u'2016 Cisco Systems, Inc.' author = u'Chris Lunsford' # The version info for the project you're documenting, acts as replacement for From b03e023ded58cbb67774cc2c08c9666301ad43f0 Mon Sep 17 00:00:00 2001 From: Chris Lunsford Date: Tue, 8 Nov 2016 09:18:20 -0500 Subject: [PATCH 19/37] Docs - Update index.rst --- docs/index.rst | 131 ++++++++++++++++++++++++++++++----------- docs/user/intro.rst | 2 + docs/user/tutorial.rst | 2 + 3 files changed, 102 insertions(+), 33 deletions(-) diff --git a/docs/index.rst b/docs/index.rst index 2be1263..75075d5 100644 --- a/docs/index.rst +++ b/docs/index.rst @@ -7,43 +7,108 @@ Simple, lightweight, scalable Python API wrapper for the Cisco Spark APIs ------------------------------------------------------------------------- Welcome to the docs! ciscosparkapi is a *community developed* Pythonic -wrapping of the Cisco Spark APIs. We represent all of the API components using -native Python tools. - -* Authentication, session headers, and connection info --> Wrapped in a - 'connection object' -* API Calls --> Wrapped in native method (function) calls hierarchically - structured underneath the 'connection object' -* Returned Spark Data Objects --> Wrapped and represented as native Python - objects -* Returned Lists of Objects --> Wrapped and represented as iterable sequences - yielding native Python objects - -This makes working with the Cisco Spark APIs in Python a native and natural -experience. You can easily interact with the Cisco Spark APIs in an -interactive Python session, quickly create some throw-away code that helps you -get something done in Spark, or you can leverage the API wrapper to cleanly add -Spark functionality to your project without having to write boilerplate code -for working with the Spark APIs. - -*ciscosparkapi helps you get things done faster.* We'll take care of the API -semantics, and you can focus on writing your code. - -**What is Cisco Spark?** +wrapping of the Cisco Spark APIs. The package represents all of the Cisco +Spark API interactions via native Python tools. + +=============================== ============================================== +Cisco Spark API ciscosparkapi Package +=============================== ============================================== +Authentication, URLs, & headers Wrapped in a simple :class:`CiscoSparkAPI` + "connection object" +------------------------------- ---------------------------------------------- +API Endpoints & Calls Wrapped and represented as native method / + function calls hierarchically structured + underneath the :class:`CiscoSparkAPI` + "connection object" +------------------------------- ---------------------------------------------- +Returned Spark Data Objects Wrapped and represented as native Python + objects +------------------------------- ---------------------------------------------- +Returned Lists of Objects Wrapped and represented as iterable sequences + that yield the native Spark Data Objects +=============================== ============================================== + +This makes working with the Cisco Spark APIs in Python a *native* and *natural* +experience. **ciscosparkapi helps you get things done faster.** We'll take +care of the API semantics, and you can focus on writing your code. + +.. code-block:: python + + from ciscosparkapi import CiscoSparkAPI + + # Create a new CiscoSparkAPI "connection object" + api = CiscoSparkAPI() + + # Create an iterable object that represents all of my group rooms + group_rooms = api.rooms.list(type='group') + + # Create a list of all rooms that have 'ciscosparkapi Demo' in their title + demo_rooms = [room for room in group_rooms if 'ciscosparkapi Demo' in room.title] + + # Delete all of the demo rooms + for room in demo_rooms: + api.rooms.delete(room.id) + + # Create a new demo room + demo_room = api.rooms.create('ciscosparkapi Demo') + + # Add people to the new demo room + email_addresses = ["test01@cmlccie.com", "test02@cmlccie.com"] + for email in email_addresses: + api.memberships.create(demo_room.id, personEmail=email) + + # Post a message to the new room, and upload a file + api.message.create(demo_room.id, text="Welcome to the room!", files=["welcome.jpg"]) + +With the ciscosparkapi package, you can easily: + +* Interact with the Cisco Spark APIs in an interactive Python session *(like: + finding the Spark ID for a room or a team, quickly getting a list of rooms + that meet a criteria, ...)* + +* Quickly create throw-away code that enables you get something done in Spark + *(like: adding all of the members of one room/team to another room/team, + exporting all of the messages in a room to a file, ...)* + +* Leverage the API wrapper to cleanly add Spark functionality to your project + without having to write the boilerplate code for working with the Spark APIs + + +Getting Started +=============== + +Install the ciscosparkapi package using ``pip``, and then check out the :ref:`Tutorial` page +to get started. + +**Installation via PIP** + +.. code-block:: bash + + $ pip install ciscosparkapi + + +General Information about the Cisco Spark Service +================================================= + +What is Cisco Spark? +-------------------- "Cisco Spark is where all your work lives. Bring your teams together in a place that makes it easy to keep people and work connected." -Check out the official `Cisco Spark`_ website for more details and to create a -free account! +Check out the official `Cisco Spark`_ website for more information and to +create a free account! -**Looking for the official Cisco Spark API docs?** +Spark for Developers +-------------------- -You can find them at `Spark for Developers`_ website. +Leveraging the Cisco Spark APIs and developing on top of the Cisco Spark cloud +is easy. Signup for a `free account`_ and then head over to the +`Spark for Developers`_ website. -User Docs -========= +User Guides +=========== .. toctree:: :maxdepth: 2 @@ -53,10 +118,10 @@ User Docs user/api -Developer Docs -============== +Developer Guides +================ -Full developer docs are *coming soon*. For now, please see the contribution_ +Developer docs are *coming soon*. For now, please see the contribution_ instructions on the ciscosparkapi_ GitHub page to get started. @@ -70,7 +135,7 @@ Indices and tables *Copyright (c) 2016 Cisco Systems, Inc.* - +.. _free account: `Cisco Spark` .. _Cisco Spark: https://www.ciscospark.com/ .. _Spark for Developers: https://developer.ciscospark.com/ .. _contribution: https://github.com/CiscoDevNet/ciscosparkapi#contribution diff --git a/docs/user/intro.rst b/docs/user/intro.rst index c6e5f3e..0522edb 100644 --- a/docs/user/intro.rst +++ b/docs/user/intro.rst @@ -1,3 +1,5 @@ +.. _Introduction: + ============ Introduction ============ diff --git a/docs/user/tutorial.rst b/docs/user/tutorial.rst index 7a3dce0..67d1cc2 100644 --- a/docs/user/tutorial.rst +++ b/docs/user/tutorial.rst @@ -1,3 +1,5 @@ +.. _Tutorial: + ======== Tutorial ======== From 3e1e01cd921fb31b7f7198c4a455afa0025543a9 Mon Sep 17 00:00:00 2001 From: Chris Lunsford Date: Tue, 15 Nov 2016 11:24:49 -0500 Subject: [PATCH 20/37] Initial Quickstart The Quickstart guide / tutorial is now finished!!! --- ciscosparkapi/__init__.py | 9 +- docs/images/_originals/spark_access_token.png | Bin 0 -> 326364 bytes docs/images/spark_access_token.png | Bin 0 -> 326364 bytes docs/index.rst | 15 +- docs/installation.rst | 30 + docs/user/api.rst | 4 +- docs/user/quickstart.rst | 515 ++++++++++++++++++ docs/user/tutorial.rst | 9 - 8 files changed, 557 insertions(+), 25 deletions(-) create mode 100644 docs/images/_originals/spark_access_token.png create mode 100644 docs/images/spark_access_token.png create mode 100644 docs/installation.rst create mode 100644 docs/user/quickstart.rst delete mode 100644 docs/user/tutorial.rst diff --git a/ciscosparkapi/__init__.py b/ciscosparkapi/__init__.py index 37df1b6..e0d86ed 100644 --- a/ciscosparkapi/__init__.py +++ b/ciscosparkapi/__init__.py @@ -107,11 +107,10 @@ def __init__(self, access_token=None, base_url=DEFAULT_BASE_URL, spark_access_token = os.environ.get('SPARK_ACCESS_TOKEN', None) access_token = access_token if access_token else spark_access_token if not access_token: - error_message = "You must provide an access token to interact " \ - "with the Cisco Spark APIs, either via the " \ - "access_token argument or via a " \ - "SPARK_ACCESS_TOKEN environment variable. " \ - "None provided." + error_message = "You must provide an Spark access token to " \ + "interact with the Cisco Spark APIs, either via " \ + "a SPARK_ACCESS_TOKEN environment variable " \ + "or via the access_token argument." raise ciscosparkapiException(error_message) session_args = {u'timeout': timeout} diff --git a/docs/images/_originals/spark_access_token.png b/docs/images/_originals/spark_access_token.png new file mode 100644 index 0000000000000000000000000000000000000000..c87e5ae22ae223bc56adfc6c109a56c7792f777c GIT binary patch literal 326364 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

M~h5n5R~UG{+KYcW#$z1@+yK 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 , and then check out the +:ref:`Quickstart` page to get started. General Information about the Cisco Spark Service @@ -113,8 +109,9 @@ User Guides .. toctree:: :maxdepth: 2 + installation user/intro - user/tutorial + user/quickstart user/api diff --git a/docs/installation.rst b/docs/installation.rst new file mode 100644 index 0000000..4e23901 --- /dev/null +++ b/docs/installation.rst @@ -0,0 +1,30 @@ +.. _Installation: + +============ +Installation +============ + + +.. _Install: + +PIP Install +----------- + +ciscosparkapi is available via PIP and the Python Package Index (PyPI). To +install ciscosparkapi, simply run this command from your terminal of choice: + +.. code-block:: bash + + $ pip install ciscosparkapi + + +.. _Upgrade: + +PIP Upgrade +----------- + +To ensure that you have the latest version, run this command: + +.. code-block:: bash + + $ pip install ciscosparkapi --upgrade diff --git a/docs/user/api.rst b/docs/user/api.rst index ee19e97..4da4659 100644 --- a/docs/user/api.rst +++ b/docs/user/api.rst @@ -1,5 +1,7 @@ .. _User API Doc: +.. currentmodule:: ciscosparkapi + ============ User API Doc ============ @@ -8,8 +10,6 @@ User API Doc Main Interface ============== -.. module:: ciscosparkapi - All of the API calls have been wrapped and hierarchically organized underneath a single :class:`CiscoSparkAPI` class. diff --git a/docs/user/quickstart.rst b/docs/user/quickstart.rst new file mode 100644 index 0000000..d2807e3 --- /dev/null +++ b/docs/user/quickstart.rst @@ -0,0 +1,515 @@ +.. _Quickstart: + +.. currentmodule:: ciscosparkapi + +========== +Quickstart +========== + +*Dive in!* ...to get started using the ciscosparkapi package: + +Make sure that you have: + +* A Cisco Spark Account *(a free account works fine,* `sign-up for one here`__ *)* +* ciscosparkapi :ref:`installed ` +* ciscosparkapi :ref:`upgraded to the latest version ` + +__ ciscospark.com_ + +Get your Spark Access Token +--------------------------- + +To interact with the Cisco Spark APIs, you must have a **Spark Access Token**. +A Spark Access Token is how the Spark APIs validate access and identify the +requesting user. + +To get your personal access token: + + 1. Login to `developer.ciscospark.com`_ + 2. Click on your avatar in the upper right hand corner + 3. Click 'Copy' to copy your access token to your clipboard + +.. image:: ../images/spark_access_token.png + + +Use your Spark Access Token +--------------------------- + +As a `best practice`__, you can store your Spark access token 'credential' as +an environment variable in your development or production environment. By +default, ciscosparkapi will look for a ``SPARK_ACCESS_TOKEN`` environment +variable when creating new connection objects. + +__ https://12factor.net/config + +There are many places and diverse ways that you can set an environment +variable, which can include: + + * A setting within your development IDE + * A setting in your container / PaaS service + * A statement in a shell script that configures and launches your app + +It can be as simple as setting it in your CLI before running your script... + +.. code-block:: bash + + $ SPARK_ACCESS_TOKEN=your_access_token_here + $ python myscript.py + +...or putting your credentials in a shell script that you ``source`` when your +shell starts up or before your run a script: + +.. code-block:: bash + + $ cat mycredentials.sh + export SPARK_ACCESS_TOKEN=your_access_token_here + $ source mycredentials.sh + $ python myscript.py + +However you choose to set it, if you have your access token stored in a +``SPARK_ACCESS_TOKEN`` environment variable when using ciscosparkapi, you are +good to go. ciscosparkapi will pull and use this access token, by default, +when creating new :class:`CiscoSparkAPI` objects. + +If you don't want to set your access token as an environment variable, or +perhaps your application will acquire access tokens via some other means, you +can manually provide your access token when creating a CiscoSparkAPI object. + + +Create a CiscoSparkAPI "Connection Object" +------------------------------------------ + +To make interacting with the Cisco Spark APIs as simple and intuitive as +possible, all of the APIs have 'wrapped' underneath a single interface. To get +started, import the :class:`CiscoSparkAPI` class and create an API "connection +object". + +.. code-block:: python + + >>> from ciscosparkapi import CiscoSparkAPI + >>> api = CiscoSparkAPI() + +As discussed above (`Use your Spark Access Token`_), ciscosparkapi defaults +to pulling your Spark access token from a ``SPARK_ACCESS_TOKEN`` environment +variable. If you do not have this environment variable set and you try to +create a new :class:`CiscoSparkAPI` object without providing a Spark access +token, a :exc:`ciscosparkapiException` will be raised. + +.. code-block:: python + + >>> from ciscosparkapi import CiscoSparkAPI + >>> api = CiscoSparkAPI() + Traceback (most recent call last): + File "", line 1, in + File "ciscosparkapi/__init__.py", line 114, in __init__ + raise ciscosparkapiException(error_message) + ciscosparkapiException: You must provide an Spark access token to interact + with the Cisco Spark APIs, either via a SPARK_ACCESS_TOKEN environment + variable or via the access_token argument. + +Use the ``access_token`` argument to manually provide your access token, when +creating a new :class:`CiscoSparkAPI` connection object. + +.. code-block:: python + + >>> from ciscosparkapi import CiscoSparkAPI + >>> api = CiscoSparkAPI(access_token='lkj345w...') + +Note that this can be very useful if you are reading in access token(s) from a +file or database and/or when you want to create more than one connection +object. + +.. code-block:: python + + >>> from ciscosparkapi import CiscoSparkAPI + >>> chris_at = 'lkj345w...' + >>> veronica_at = 'kl45kln...' + >>> chris_api = CiscoSparkAPI(access_token=chris_at) + >>> veronica_api = CiscoSparkAPI(access_token=veronica_at) + + +Making API Calls +---------------- + +Now that you have created a :class:`CiscoSparkAPI` "connection object," you are +ready to start making API calls. + +.. code-block:: python + + >>> api.people.me() + Person({"displayName": "Chris Lunsford", "firstName": "Chris", "created": "2012-06-15T20:36:48.914Z", "lastName": "Lunsford", "emails": ["chrlunsf@cisco.com"], "avatar": "https://1efa7a94ed216783e352-c62266528714497a17239ececf39e9e2.ssl.cf1.rackcdn.com/V1~ba1ecf557a7e0b7cc3081998df965aad~7-HrvYOJSQ6eJgWJuFVbzg==~1600", "id": "Y2lzY29zcGFyazovL3VzL1BFT1BMRS9mZjhlZTZmYi1hZmVmLTRhNGQtOTJiMS1kNmIyMTZiNTg5NDk"}) + +It really is that easy. + +All of the calls have been wrapped and represented as native Python method +calls, like :meth:`CiscoSparkAPI.people.me()` which gets the person details +for the authenticated user (the user who's access token you are using) - see +the `https://api.ciscospark.com/v1/people/me +`_ API endpoint +documentation. + +As you can see, we have tried to represent the API endpoints using simple terms +that are aligned with the API docs; for example, representing the ``people/me`` +API endpoint as a ``people.me()`` method available underneath the +:class:`CiscoSparkAPI` connection object. + +A full list of the available API methods, with their descriptions and +parameters, is available in the :ref:`User API Doc`, and a brief summary of the +structure is provided here. + + ++-----------------------+-------------------------+-------------------------------------+ +|:class:`CiscoSparkAPI` | :ref:`people` | :meth:`~PeopleAPI.list` | +| | +-------------------------------------+ +| | | :meth:`~PeopleAPI.get` | +| | +-------------------------------------+ +| | | :meth:`~PeopleAPI.me` | ++-----------------------+-------------------------+-------------------------------------+ +| | :ref:`rooms` | :meth:`~RoomsAPI.list` | +| | +-------------------------------------+ +| | | :meth:`~RoomsAPI.create` | +| | +-------------------------------------+ +| | | :meth:`~RoomsAPI.get` | +| | +-------------------------------------+ +| | | :meth:`~RoomsAPI.update` | +| | +-------------------------------------+ +| | | :meth:`~RoomsAPI.delete` | ++-----------------------+-------------------------+-------------------------------------+ +| | :ref:`memberships` | :meth:`~MembershipsAPI.list` | +| | +-------------------------------------+ +| | | :meth:`~MembershipsAPI.create` | +| | +-------------------------------------+ +| | | :meth:`~MembershipsAPI.get` | +| | +-------------------------------------+ +| | | :meth:`~MembershipsAPI.update` | +| | +-------------------------------------+ +| | | :meth:`~MembershipsAPI.delete` | ++-----------------------+-------------------------+-------------------------------------+ +| | :ref:`messages` | :meth:`~MessagesAPI.list` | +| | +-------------------------------------+ +| | | :meth:`~MessagesAPI.create` | +| | +-------------------------------------+ +| | | :meth:`~MessagesAPI.get` | +| | +-------------------------------------+ +| | | :meth:`~MessagesAPI.delete` | ++-----------------------+-------------------------+-------------------------------------+ +| | :ref:`teams` | :meth:`~TeamsAPI.list` | +| | +-------------------------------------+ +| | | :meth:`~TeamsAPI.create` | +| | +-------------------------------------+ +| | | :meth:`~TeamsAPI.get` | +| | +-------------------------------------+ +| | | :meth:`~TeamsAPI.update` | +| | +-------------------------------------+ +| | | :meth:`~TeamsAPI.delete` | ++-----------------------+-------------------------+-------------------------------------+ +| | :ref:`team_memberships` | :meth:`~TeamMembershipsAPI.list` | +| | +-------------------------------------+ +| | | :meth:`~TeamMembershipsAPI.create` | +| | +-------------------------------------+ +| | | :meth:`~TeamMembershipsAPI.get` | +| | +-------------------------------------+ +| | | :meth:`~TeamMembershipsAPI.update` | +| | +-------------------------------------+ +| | | :meth:`~TeamMembershipsAPI.delete` | ++-----------------------+-------------------------+-------------------------------------+ +| | :ref:`webhooks` | :meth:`~WebhooksAPI.list` | +| | +-------------------------------------+ +| | | :meth:`~WebhooksAPI.create` | +| | +-------------------------------------+ +| | | :meth:`~WebhooksAPI.get` | +| | +-------------------------------------+ +| | | :meth:`~WebhooksAPI.update` | +| | +-------------------------------------+ +| | | :meth:`~WebhooksAPI.delete` | ++-----------------------+-------------------------+-------------------------------------+ +| | :ref:`access_tokens` | :meth:`~AccessTokensAPI.get` | +| | +-------------------------------------+ +| | | :meth:`~AccessTokensAPI.refresh` | ++-----------------------+-------------------------+-------------------------------------+ + +You can easily access and call any of these methods directly from your +:class:`CiscoSparkAPI` connection object: + +.. code-block:: python + + >>> chris_id = "Y2lzY29zcGFyazovL3VzL1BFT1BMRS9mZjhlZTZmYi1hZmVmLTRhNGQtOTJiMS1kNmIyMTZiNTg5NDk" + >>> api.people.get(personId=chris_id) + Person({"displayName": "Chris Lunsford", "firstName": "Chris", "created": "2012-06-15T20:36:48.914Z", "lastName": "Lunsford", "emails": ["chrlunsf@cisco.com"], "avatar": "https://1efa7a94ed216783e352-c62266528714497a17239ececf39e9e2.ssl.cf1.rackcdn.com/V1~ba1ecf557a7e0b7cc3081998df965aad~7-HrvYOJSQ6eJgWJuFVbzg==~1600", "id": "Y2lzY29zcGFyazovL3VzL1BFT1BMRS9mZjhlZTZmYi1hZmVmLTRhNGQtOTJiMS1kNmIyMTZiNTg5NDk"}) + + +Catching Exceptions +------------------- + +If something should go wrong with the API call, an exception will be raised. +:exc:`SparkApiError` exceptions are raised when an error condition is +returned from the Cisco Spark cloud. Details will be provided in the error +message. + +.. code-block:: python + + >>> from ciscosparkapi import CiscoSparkAPI, SparkApiError + >>> api = CiscoSparkAPI() + >>> room = api.rooms.create("ciscosparkapi Test Room") + >>> me = api.people.me() + >>> api.memberships.create(roomId=room.id, personId=me.id) + Traceback (most recent call last): + File "", line 1, in + File "ciscosparkapi/api/memberships.py", line 212, in create + json_obj = self._session.post('memberships', json=post_data) + File "ciscosparkapi/restsession.py", line 187, in post + check_response_code(response, erc) + File "ciscosparkapi/utils.py", line 104, in check_response_code + response=response) + ciscosparkapi.exceptions.SparkApiError: Response Code [409] - The request + could not be processed because it conflicts with some established rule of + the system. For example, a person may not be added to a room more than + once. + +You can catch any errors returned by the Cisco Spark cloud by catching +:exc:`SparkApiError` exceptions in a try-except block. + +.. code-block:: python + + >>> try: + ... api.memberships.create(roomId=room.id, personId=me.id) + ... except SparkApiError as e: + ... memberships = api.memberships.list(roomId=room.id) + ... for membership in memberships: + ... if membership.personId == me.id: + ... print("Doh! I forgot that I am automatically added to a" + ... "room when I create it.") + ... break + ... else: + ... print(e) + ... + Doh! I forgot that I am automatically added to a room when I create it. + >>> + +ciscosparkapi will also raise a number of other standard errors +(:exc:`AssertionError`, :exc:`TypeError`, etc.) and other package errors like +:exc:`ciscosparkapiException`; however, these errors are usually caused by +incorrect use of the package or methods and should be sorted while debugging +your app. + + +Working with Returned Objects +----------------------------- + +The Cisco Spark cloud returns data objects in JSON format, like so: + +.. code-block:: json + + { + "displayName": "Chris Lunsford", + "firstName": "Chris", + "created": "2012-06-15T20:36:48.914Z", + "lastName": "Lunsford", + "emails": [ + "chrlunsf@cisco.com" + ], + "avatar": "https://1efa7a94ed216783e352-c62266528714497a17239ececf39e9e2.ssl.cf1.rackcdn.com/V1~ba1ecf557a7e0b7cc3081998df965aad~7-HrvYOJSQ6eJgWJuFVbzg==~1600", + "id": "Y2lzY29zcGFyazovL3VzL1BFT1BMRS9mZjhlZTZmYi1hZmVmLTRhNGQtOTJiMS1kNmIyMTZiNTg5NDk" + } + +Sure, JSON data objects can easily be parsed and represented in Python using +dictionaries, but when working with an 'object' wouldn't it be nice to be able +to work with it like an object - using native object syntax (like accessing +attributes using '.' notation)? ciscosparkapi enables you to do just that: + +.. code-block:: python + + >>> me = api.people.me() + >>> me.id + u'Y2lzY29zcGFyazovL3VzL1BFT1BMRS9mZjhlZTZmYi1hZmVmLTRhNGQtOTJiMS1kNmIyMTZiNTg5NDk' + >>> me.displayName + u'Chris Lunsford' + +Representing and treating Spark data objects as Python data objects, can really +help clean up your code and make coding easier: + + 1. You don't need to create variables to hold the data attributes, just + use the attributes available underneath the data object. + + .. code-block:: python + + >>> # Do this + >>> api.people.get(personId=me.id) + Person({"displayName": "Chris Lunsford", "firstName": "Chris", "created": "2012-06-15T20:36:48.914Z", "lastName": "Lunsford", "emails": ["chrlunsf@cisco.com"], "avatar": "https://1efa7a94ed216783e352-c62266528714497a17239ececf39e9e2.ssl.cf1.rackcdn.com/V1~ba1ecf557a7e0b7cc3081998df965aad~7-HrvYOJSQ6eJgWJuFVbzg==~1600", "id": "Y2lzY29zcGFyazovL3VzL1BFT1BMRS9mZjhlZTZmYi1hZmVmLTRhNGQtOTJiMS1kNmIyMTZiNTg5NDk"}) + >>> # Instead of this + >>> my_id = me.id + >>> api.people.get(personId=my_id) + Person({"displayName": "Chris Lunsford", "firstName": "Chris", "created": "2012-06-15T20:36:48.914Z", "lastName": "Lunsford", "emails": ["chrlunsf@cisco.com"], "avatar": "https://1efa7a94ed216783e352-c62266528714497a17239ececf39e9e2.ssl.cf1.rackcdn.com/V1~ba1ecf557a7e0b7cc3081998df965aad~7-HrvYOJSQ6eJgWJuFVbzg==~1600", "id": "Y2lzY29zcGFyazovL3VzL1BFT1BMRS9mZjhlZTZmYi1hZmVmLTRhNGQtOTJiMS1kNmIyMTZiNTg5NDk"}) + + 2. If your IDE supports auto-completion (like PyCharm_ for example), then + you can easily see and 'tab-out' available attributes while coding. + + *For Example:* When working with a :class:`Person` object, your can + type the object name followed by a dot '``me.``' and see a list of + available attributes. Typing a few more letters '``me.dis``' narrows + down the attribute list to '``displayName``', and you can now simply + hit '````' to complete your attribute '``me.displayName``'. + + This speeds up coding and reduces typo coding errors. + + 3. When accessing 'optional' attributes, like the ``teamId`` attribute of + a Spark Room object (only present when the room is part of a Spark + Team), the :class:`ciscosparkapi.Room` object will return ``None`` when + the attribute is not present and will return the attribute's value when + it is present. This avoids some boiler plate code and/or needless + exception handling, when working with optional attributes. + + .. code-block:: python + + >>> # Instead of doing this + >>> if hasattr(room, 'teamId'): + ... # Do something with the teamId attribute + ... pass + >>> # Or this + >>> try: + ... # Do something with the teamId attribute + ... room.teamId + ... except AttributeError as e: + ... pass + >>> # You can do this, which is cleaner + >>> if room.teamId: + ... # Do something with the teamId attribute + ... pass + + + 4. It just feels more *natural*. :-) When iterating through sequences, + and working with objects in those sequences (see the next section), + working with objects as objects is definitely more Pythonic. + + The Zen of Python (`PEP 20`_): + "Beautiful is better than ugly." + "Simple is better than complex." + +A full list of the currently modeled :ref:`Spark Data Objects`, with their +attributes, is available :ref:`here ` in the +:ref:`User API Doc`. + + +**What if Spark adds new data attributes?** + +Attribute access WILL WORK for the newly added attributes (yes, without a +package update!), but tab-completion WILL NOT. ciscosparkapi is written to +automatically take advantage of new attributes and data as they are returned; +however, tab-completion (which relies on source code and introspection) will +not work until we update the ciscosparkapi package (which is easy to do; raise +the issue on the issues_ page and bug us to add it). + + + +Working with Returned 'Lists' of Objects +---------------------------------------- + +**Challenge** + +When you ask Spark for a list of items (like all of the rooms that you are a +member of or all of the messages in a room), Spark needs to return these items +to you in an efficient way. Sending all of the messages in a room in one +transaction or request isn't really feasible (imaging if the room had existed +for years!). Additionally, what if you found what you were looking for in the +first few (most recent) messages? Sending all of the items would have been a +waste of time and resources. + +To facilitate efficient transactions when requesting lists of items, the Spark +APIs implement RFC5988 (Web Linking) to efficiently send 'pages' of responses +(see Pagination_ on the Spark for Developers site). When you make a request to +an Spark API that leverages pagination, Spark returns the first 'page' of +results and a link to the 'next page' of results. If information you need +isn't contained the first page, you can request the next and so forth. + +**Solution** + +Python has a similar construct as well - iterable_ objects. Iterable objects +return their members one at a time, until they have all been returned. + +ciscosparkapi marries these two concepts (pagination and iterables) to create a +simple interface for working with sequences of returned objects. + +.. code-block:: python + + >>> # Returns a iterable object yielding all of the rooms you are a member of + >>> rooms = api.rooms.list() + + >>> # Which can easily be iterated to find what you are looking for + >>> for room in rooms: + ... if 'ciscosparkapi' in room.title: + ... demo_room = room + ... break + + >>> demo_room + Room({"title": "ciscosparkapi Test Room", "created": "2016-11-12T03:24:39.278Z", "isLocked": false, "lastActivity": "2016-11-12T03:24:39.308Z", "creatorId": "Y2lzY29zcGFyazovL3VzL1BFT1BMRS9mZjhlZTZmYi1hZmVmLTRhNGQtOTJiMS1kNmIyMTZiNTg5NDk", "type": "group", "id": "Y2lzY29zcGFyazovL3VzL1JPT00vOGI1MTIwZTAtYTg4Ny0xMWU2LWFhZjUtZTlmYWEzMWQ1ZmRm"}) + +ciscosparkapi provides this functionality by returning +:class:`GeneratorContainer` objects for API calls that return lists of items. + +In short, :class:`GeneratorContainer` s are iterable objects that incrementally +yield 'the next object' returned from your Spark API query request until all +items have been returned, and they are reusable. If you create an ``rooms`` +:class:`GeneratorContainer`, like we did above with +``rooms = api.rooms.list()``, you can use that object to iterate through the +rooms not just once but many times. + +**Note:** Every time you iterate a :class:`GeneratorContainer` object, fresh +API calls are made so you are always working with 'live data' from the Cisco +Spark Cloud. + +ciscosparkapi *automatically handles the pagination for you* so that you don't +have to think about it or write the boiler plate code to handle requesting +pages of responses. ciscosparkapi automatically and efficiently requests +additional pages from Spark as needed to yield the items you have requested. + +A :class:`GeneratorContainer` records all of the parameters of your API call, +and uses them to request data from Spark each time you iterate the container. + +.. code-block:: python + + >>> # Returns a iterable object representing all of group rooms you are a member of + >>> group_rooms = api.rooms.list(type='group') + + >>> # Returns a iterable object representing all of direct rooms you are a member of + >>> direct_rooms = api.rooms.list(type='direct') + + >>> # Iterate through your group rooms + >>> for room in group_rooms: + ... pass + + >>> # Iterate through your direct rooms + >>> for room in direct_rooms: + ... pass + + >>> # You can iterate through your group rooms again; + >>> # if a new room has been created since the last time, it will show up. + >>> for room in group_rooms: + ... pass + +**These iterable objects are great, but what if I really DO want a list?** + +Sometimes you really DO want a ``list`` of items. Perhaps you want to work +with the same static ``list`` of items to ensure you are looking at 'all of the +items' so you can count them with ``len()`` or perform some other analysis... + +Whatever your reason for doing so, you can easily 'convert' an iterable +object to a standard Python ``list`` with the ``list()`` function. This may +take a little time for all of the API calls to be made, but the list will +contain all of the returned objects. + +.. code-block:: python + + >>> rooms_iterable = api.rooms.list() + >>> rooms_list = list(rooms_iterable) + + + +*Copyright (c) 2016 Cisco Systems, Inc.* + +.. _ciscospark.com: https://www.ciscospark.com/ +.. _developer.ciscospark.com: https://developer.ciscospark.com/ +.. _PyCharm: https://www.jetbrains.com/pycharm/ +.. _PEP 20: https://www.python.org/dev/peps/pep-0020/ +.. _issues: https://github.com/CiscoDevNet/ciscosparkapi/issues +.. _Pagination: https://developer.ciscospark.com/pagination.html +.. _iterable: https://docs.python.org/2/glossary.html#term-iterable diff --git a/docs/user/tutorial.rst b/docs/user/tutorial.rst deleted file mode 100644 index 67d1cc2..0000000 --- a/docs/user/tutorial.rst +++ /dev/null @@ -1,9 +0,0 @@ -.. _Tutorial: - -======== -Tutorial -======== - - - -*Copyright (c) 2016 Cisco Systems, Inc.* From 7583c2578f75d7ed6f3daea9d289e44bbce24e7f Mon Sep 17 00:00:00 2001 From: Chris Lunsford Date: Fri, 2 Dec 2016 12:21:23 -0500 Subject: [PATCH 21/37] Fix Documentation Bug #22 Report and needed corrections provided by @DJF3 -Thank you! --- README.rst | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/README.rst b/README.rst index 8f85f36..c6b5aa2 100644 --- a/README.rst +++ b/README.rst @@ -93,7 +93,8 @@ All of this, combined, lets you do powerful things simply: api.memberships.create(demo_room.id, personEmail=email) # Post a message to the new room, and upload a file - api.message.create(demo_room.id, text="Welcome to the room!", files=["welcome.jpg"]) + api.messages.create(demo_room.id, text="Welcome to the room!", + files=["https://developer.ciscospark.com/images/logo_spark_lg@256.png"]) That's more than six Spark API calls in less than 23 lines of script code (with comments)! ...and likely more than that depending on how many rooms are returned by Spark (remember pagination is handled for you automatically) From 939108a56570441796465ed07d80694e9c65be81 Mon Sep 17 00:00:00 2001 From: Chris Lunsford Date: Fri, 2 Dec 2016 12:51:51 -0500 Subject: [PATCH 22/37] Finalize the Docs for Initial Release --- README.rst | 20 ++++++- docs/index.rst | 117 +++++++++------------------------------ docs/installation.rst | 35 +++++++++++- docs/user/intro.rst | 44 +++++++++++++++ docs/user/quickstart.rst | 5 +- 5 files changed, 125 insertions(+), 96 deletions(-) diff --git a/README.rst b/README.rst index c6b5aa2..fde946f 100644 --- a/README.rst +++ b/README.rst @@ -8,6 +8,19 @@ Simple, lightweight, scalable Python API wrapper for the Cisco Spark APIs .. image:: https://img.shields.io/pypi/v/ciscosparkapi.svg :target: https://pypi.python.org/pypi/ciscosparkapi +.. image:: https://readthedocs.org/projects/ciscosparkapi/badge/?version=latest + :target: http://ciscosparkapi.readthedocs.io/en/latest/?badge=latest + +**Important update!** +Complete user documentation is now available on +`ciscosparkapi.readthedocs.io`_ ! + +Please use the issues_ page to report any issues or feedback regarding the +documentation. + + +Introduction +------------ Sure, working with the Cisco Spark APIs is easy (see `developer.ciscospark.com`_). They are RESTful, naturally structured, require only a simple Access Token for authentication, and the data is elegantly represented in intuitive JSON. What could be easier? @@ -139,6 +152,10 @@ Have a good example script you would like to share? Please feel free to contrib Documentation ------------- +**Complete user documentation is now available!** + +Read the Docs at `ciscosparkapi.readthedocs.io`_ !! + All of the user-facing methods have complete docstrings. You can view the docstrings for any method either from the `source files`_, or by using the Python ``help()`` function. .. code-block:: python @@ -161,8 +178,6 @@ All of the user-facing methods have complete docstrings. You can view the docst private 1:1 message. ... -Full standalone online documentation is coming soon (it's on the backlog!). - Contribution ------------ @@ -194,6 +209,7 @@ Interested in contributing code? .. _PyCharm: https://www.jetbrains.com/pycharm/ .. _examples: https://github.com/CiscoDevNet/ciscosparkapi/tree/master/examples .. _source files: https://github.com/CiscoDevNet/ciscosparkapi/tree/master/ciscosparkapi +.. _ciscosparkapi.readthedocs.io: https://ciscosparkapi.readthedocs.io .. _ciscosparkapi: https://github.com/CiscoDevNet/ciscosparkapi .. _ciscosparksdk: https://github.com/CiscoDevNet/ciscosparksdk .. _issues: https://github.com/CiscoDevNet/ciscosparkapi/issues diff --git a/docs/index.rst b/docs/index.rst index edfb8e9..f602211 100644 --- a/docs/index.rst +++ b/docs/index.rst @@ -4,83 +4,47 @@ ciscosparkapi ============= -------------------------------------------------------------------------- -Simple, lightweight, scalable Python API wrapper for the Cisco Spark APIs -------------------------------------------------------------------------- +*Simple, lightweight, scalable Python API wrapper for the Cisco Spark APIs* + +------------------------------------------------------------------------------- Welcome to the docs! ciscosparkapi is a *community developed* Pythonic wrapping of the Cisco Spark APIs. The package represents all of the Cisco -Spark API interactions via native Python tools. - -=============================== ============================================== -Cisco Spark API ciscosparkapi Package -=============================== ============================================== -Authentication, URLs, & headers Wrapped in a simple :class:`CiscoSparkAPI` - "connection object" -------------------------------- ---------------------------------------------- -API Endpoints & Calls Wrapped and represented as native method / - function calls hierarchically structured - underneath the :class:`CiscoSparkAPI` - "connection object" -------------------------------- ---------------------------------------------- -Returned Spark Data Objects Wrapped and represented as native Python - objects -------------------------------- ---------------------------------------------- -Returned Lists of Objects Wrapped and represented as iterable sequences - that yield the native Spark Data Objects -=============================== ============================================== - -This makes working with the Cisco Spark APIs in Python a *native* and *natural* -experience. **ciscosparkapi helps you get things done faster.** We'll take -care of the API semantics, and you can focus on writing your code. - -.. code-block:: python - - from ciscosparkapi import CiscoSparkAPI - - # Create a new CiscoSparkAPI "connection object" - api = CiscoSparkAPI() +Spark API interactions via native Python tools. Making working with the Cisco +Spark APIs in Python a *native* and *natural* experience. - # Create an iterable object that represents all of my group rooms - group_rooms = api.rooms.list(type='group') - - # Create a list of all rooms that have 'ciscosparkapi Demo' in their title - demo_rooms = [room for room in group_rooms if 'ciscosparkapi Demo' in room.title] +**ciscosparkapi helps you get things done faster.** We take +care of the API semantics, and you can focus on writing your code. - # Delete all of the demo rooms - for room in demo_rooms: - api.rooms.delete(room.id) +With ciscosparkapi, you can easily: - # Create a new demo room - demo_room = api.rooms.create('ciscosparkapi Demo') +* Interact with the Cisco Spark APIs in an interactive Python session - # Add people to the new demo room - email_addresses = ["test01@cmlccie.com", "test02@cmlccie.com"] - for email in email_addresses: - api.memberships.create(demo_room.id, personEmail=email) +* Quickly create code that enables you get something done in Spark - # Post a message to the new room, and upload a file - api.message.create(demo_room.id, text="Welcome to the room!", files=["welcome.jpg"]) +* Leverage the API wrapper to cleanly add Spark functionality to your project + without having to write the boilerplate code for working with the Spark APIs -With the ciscosparkapi package, you can easily: +To *dive in* and see how ciscosparkapi makes your life better, check out the +:ref:`Quickstart`! -* Interact with the Cisco Spark APIs in an interactive Python session *(like: - finding the Spark ID for a room or a team, quickly getting a list of rooms - that meet a criteria, ...)* +The User Guide +============== -* Quickly create throw-away code that enables you get something done in Spark - *(like: adding all of the members of one room/team to another room/team, - exporting all of the messages in a room to a file, ...)* +.. toctree:: + :maxdepth: 2 -* Leverage the API wrapper to cleanly add Spark functionality to your project - without having to write the boilerplate code for working with the Spark APIs + installation + user/intro + user/quickstart + user/api -Getting Started -=============== +The Community Guide +=================== -:ref:`Install ciscosparkapi ` , and then check out the -:ref:`Quickstart` page to get started. +Community developer docs are *coming soon*. For now, please see the +contribution_ instructions on the ciscosparkapi_ GitHub page to get started. General Information about the Cisco Spark Service @@ -100,34 +64,7 @@ Spark for Developers Leveraging the Cisco Spark APIs and developing on top of the Cisco Spark cloud is easy. Signup for a `free account`_ and then head over to the -`Spark for Developers`_ website. - - -User Guides -=========== - -.. toctree:: - :maxdepth: 2 - - installation - user/intro - user/quickstart - user/api - - -Developer Guides -================ - -Developer docs are *coming soon*. For now, please see the contribution_ -instructions on the ciscosparkapi_ GitHub page to get started. - - -Indices and tables -================== - -* :ref:`genindex` -* :ref:`modindex` -* :ref:`search` +`Spark for Developers`_ website to learn more. *Copyright (c) 2016 Cisco Systems, Inc.* diff --git a/docs/installation.rst b/docs/installation.rst index 4e23901..c505c73 100644 --- a/docs/installation.rst +++ b/docs/installation.rst @@ -10,21 +10,52 @@ Installation PIP Install ----------- -ciscosparkapi is available via PIP and the Python Package Index (PyPI). To +ciscosparkapi is available via PIP and the `Python Package Index (PyPI)`_. To install ciscosparkapi, simply run this command from your terminal of choice: .. code-block:: bash $ pip install ciscosparkapi +The ciscosparkapi package is distributed as a *source distribution* (no +binaries). + .. _Upgrade: PIP Upgrade ----------- -To ensure that you have the latest version, run this command: +To ensure that you have the latest version, check-for and install upgrades via +PIP: .. code-block:: bash $ pip install ciscosparkapi --upgrade + + +.. _Source Code: + +Get the Source Code +------------------- + +ciscosparkapi is developed on GitHub. If you like and use this package, +please take a few seconds to Star the package on +the `CiscoDevNet/ciscosparkapi`_ GitHub page. Your feedback and +contributions are always welcome. + +Use the following command to download the source code (GIT repository): + +.. code-block:: bash + + $ git clone https://github.com/CiscoDevNet/ciscosparkapi.git + +You can then install the package to your environment, with the following +command: + +.. code-block:: bash + + $ python setup.py install + +.. _Python Package Index (PyPI): https://pypi.python.org/pypi/ciscosparkapi +.. _CiscoDevNet/ciscosparkapi: https://github.com/CiscoDevNet/ciscosparkapi diff --git a/docs/user/intro.rst b/docs/user/intro.rst index 0522edb..204cdcf 100644 --- a/docs/user/intro.rst +++ b/docs/user/intro.rst @@ -4,6 +4,50 @@ Introduction ============ +ciscosparkapi is a *community developed* Pythonic wrapping of the Cisco Spark +APIs. +*What do we mean by a 'Python wrapping' of the APIs?* + +=============================== ============================================== +Cisco Spark API ciscosparkapi Package +=============================== ============================================== +Authentication, URLs, & headers Wrapped in a simple :class:`CiscoSparkAPI` + "connection object" +------------------------------- ---------------------------------------------- +API Endpoints & Calls Wrapped and represented as native method / + function calls hierarchically structured + underneath the :class:`CiscoSparkAPI` + "connection object" +------------------------------- ---------------------------------------------- +Returned Spark Data Objects Wrapped and represented as native Python + objects +------------------------------- ---------------------------------------------- +Returned Lists of Objects Wrapped and represented as iterable sequences + that yield the native Spark Data Objects +=============================== ============================================== + +The idea is to enable you to work with the Cisco Spark APIs using native Python +objects and tools, such that you can focus on your code and not have to write +boiler-plate code to handle the API mechanics. + +Head over to the :ref:`Quickstart` page to get started. + +.. _License: + +MIT License +----------- + +ciscosparkapi is currently licensed under the `MIT Open Source License`_, and +distributed as a source distribution (no binaries) via :ref:`PyPI `, +and the complete :ref:`Source Code` is available on GitHub. + +ciscosparkapi License +--------------------- + +.. include:: ../../LICENSE + + +.. _MIT Open Source License: https://opensource.org/licenses/MIT *Copyright (c) 2016 Cisco Systems, Inc.* diff --git a/docs/user/quickstart.rst b/docs/user/quickstart.rst index d2807e3..4369ef5 100644 --- a/docs/user/quickstart.rst +++ b/docs/user/quickstart.rst @@ -148,7 +148,7 @@ the `https://api.ciscospark.com/v1/people/me `_ API endpoint documentation. -As you can see, we have tried to represent the API endpoints using simple terms +As you can see, we have represented the API endpoints using simple terms that are aligned with the API docs; for example, representing the ``people/me`` API endpoint as a ``people.me()`` method available underneath the :class:`CiscoSparkAPI` connection object. @@ -490,7 +490,8 @@ and uses them to request data from Spark each time you iterate the container. Sometimes you really DO want a ``list`` of items. Perhaps you want to work with the same static ``list`` of items to ensure you are looking at 'all of the -items' so you can count them with ``len()`` or perform some other analysis... +items' and to make sure that your list doesn't change while you are working +with it... Whatever your reason for doing so, you can easily 'convert' an iterable object to a standard Python ``list`` with the ``list()`` function. This may From eed6b2244f222d27e3767b2e9e5bdbbe176ab494 Mon Sep 17 00:00:00 2001 From: Chris Lunsford Date: Tue, 13 Dec 2016 22:01:43 +0800 Subject: [PATCH 23/37] Merge branch 'master' into development # Conflicts: # README.rst # docs/conf.py # docs/user/intro.rst --- README.rst | 193 +++++++++++++++------------------------ docs/conf.py | 130 ++++++-------------------- docs/user/intro.rst | 156 +++++++++++++++++++++++++------ examples/ngrokwebhook.py | 74 +++++++++++++++ requirements.txt | 15 +++ 5 files changed, 318 insertions(+), 250 deletions(-) create mode 100644 examples/ngrokwebhook.py create mode 100644 requirements.txt diff --git a/README.rst b/README.rst index fde946f..6d02f7c 100644 --- a/README.rst +++ b/README.rst @@ -2,86 +2,15 @@ ciscosparkapi ============= -------------------------------------------------------------------------- -Simple, lightweight, scalable Python API wrapper for the Cisco Spark APIs -------------------------------------------------------------------------- - .. image:: https://img.shields.io/pypi/v/ciscosparkapi.svg :target: https://pypi.python.org/pypi/ciscosparkapi .. image:: https://readthedocs.org/projects/ciscosparkapi/badge/?version=latest :target: http://ciscosparkapi.readthedocs.io/en/latest/?badge=latest -**Important update!** -Complete user documentation is now available on -`ciscosparkapi.readthedocs.io`_ ! - -Please use the issues_ page to report any issues or feedback regarding the -documentation. - - -Introduction ------------- - -Sure, working with the Cisco Spark APIs is easy (see `developer.ciscospark.com`_). They are RESTful, naturally structured, require only a simple Access Token for authentication, and the data is elegantly represented in intuitive JSON. What could be easier? - -.. code-block:: python - - import requests - - URL = 'https://api.ciscospark.com/v1/messages' - ACCESS_TOKEN = '' - ROOM_ID = '' - MESSAGE_TEXT = '' - - headers = {'Authorization': 'Bearer ' + ACCESS_TOKEN, - 'Content-type': 'application/json;charset=utf-8'} - post_data = {'roomId': ROOM_ID, - 'text': MESSAGE_TEXT} - response = requests.post(URL, json=post_data, headers=headers) - if response.status_code == 200: - # Great your message was posted! - message_id = response.json['id'] - message_text = response.json['text'] - print("New message created, with ID:", message_id) - print(message_text) - else: - # Oops something went wrong... Better do something about it. - print(response.status_code, response.text) - -Like I said, EASY. However, in use, the code can become rather repetitive... - -- You have to setup the environment every time -- You have to remember URLs and request arguments (or reference the docs) -- You have to parse the returned JSON and setup variables to hold the attributes you need -- When requesting lists of items, you have to deal with pagination_ - -Enter **ciscosparkapi**, a simple API wrapper that wraps all of the Spark API calls and returned JSON objects within native Python objects and function calls. - -With ciscosparkapi, the above Python code can be consolidated to the following: - -.. code-block:: python - - from ciscosparkapi import CiscoSparkAPI - - api = CiscoSparkAPI() - try: - message = api.messages.create('', text='') - print("New message created, with ID:", message.id) - print(message.text) - except SparkApiError as e: - print(e) - -The ciscosparkapi package handles all of this for you: - -+ Reads your Spark access token from a ``SPARK_ACCESS_TOKEN`` environment variable -+ Wraps and represents all Spark API calls as a simple hierarchical tree of native-Python methods (with default arguments provided everywhere possible!) -+ If your Python IDE supports **auto-completion** (like PyCharm_), you can navigate the available methods and object attributes right within your IDE -+ Represents all returned JSON objects as native Python objects - you can access all of the object's attributes using native *dot.syntax* -+ **Automatic and Transparent Pagination!** When requesting 'lists of objects' from Spark, requests for additional pages of responses are efficiently and automatically requested as needed -+ Multipart encoding and uploading of local files, when creating messages with local file attachments - -All of this, combined, lets you do powerful things simply: +**ciscosparkapi** is a *community developed* Pythonic wrapping of the Cisco +Spark APIs, which makes working with Cisco Spark in Python a *native* and +*natural* experience! .. code-block:: python @@ -109,14 +38,49 @@ All of this, combined, lets you do powerful things simply: api.messages.create(demo_room.id, text="Welcome to the room!", files=["https://developer.ciscospark.com/images/logo_spark_lg@256.png"]) -That's more than six Spark API calls in less than 23 lines of script code (with comments)! -...and likely more than that depending on how many rooms are returned by Spark (remember pagination is handled for you automatically) + +That's more than 6 Spark API calls in less than 23 lines of code (with comments +and whitespace), and likely more than that since ciscosparkapi handles +pagination_ for you automatically! + +ciscosparkapi makes your life better... `Learn how!`__ + +__ Introduction_ + + +Features +-------- + +ciscosparkapi does all of this for you... + ++ Transparently sources your Spark credentials from your local environment + ++ Provides and uses default arguments and settings everywhere possible, so you + don't have to think about things like API endpoint URLs, HTTP headers and + JSON formats + ++ Represents all Cisco Spark API interactions using native Python tools + + + Authentication and Connection to the Cisco Spark Cloud ==> + **CiscoSparkAPI** 'Connection Object' + + + API Calls ==> Hierarchically organized method calls underneath a + **CiscoSparkAPI** 'Connection Object' + + + Returned Data Objects ==> Native Python objects + ++ **Automatic and transparent pagination!** + ++ Multipart encoding and uploading of local files + ++ Auto-completion in your favorite IDE, descriptive exceptions, and so much + more... Installation ------------ -Installation and updating of ciscosparkapi is easy: +Installing and upgrading ciscosparkapi is easy: **Install via PIP** @@ -131,14 +95,13 @@ Installation and updating of ciscosparkapi is easy: $ pip install ciscosparkapi --upgrade -Releases & Release Notes ------------------------- - -Complete and usable *Beta* releases_ have been published for this package. +Documentation +------------- -While the package APIs may change (while the package is in beta), the package capabilities should all be functional. If you experience any issues using this package, please report them using the issues_ log. +**Excellent documentation is now available at:** +http://ciscosparkapi.readthedocs.io -Please see the releases_ page for release notes on the incremental functionality and bug fixes that have been incorporated into the published releases. +Check out the Quickstart_ to dive in and begin using ciscosparkapi. Examples @@ -146,70 +109,62 @@ Examples Looking for some examples or sample scripts? Check out the examples_ folder! -Have a good example script you would like to share? Please feel free to contribute! +Have a good example script you would like to share? Please feel free to +`contribute`__! +__ Contribution_ -Documentation -------------- - -**Complete user documentation is now available!** -Read the Docs at `ciscosparkapi.readthedocs.io`_ !! - -All of the user-facing methods have complete docstrings. You can view the docstrings for any method either from the `source files`_, or by using the Python ``help()`` function. +Release Notes +------------- -.. code-block:: python +Complete and fully functional *Beta* releases have been published. Please +see the releases_ page for release notes on the incremental functionality and +bug fixes incorporated into the published releases. - >>> from ciscosparkapi import CiscoSparkAPI - >>> api = CiscoSparkAPI() - >>> help(api.messages.create) - create(self, roomId=None, toPersonId=None, toPersonEmail=None, text=None, markdown=None, files=None) method of ciscosparkapi.api.messages.MessagesAPI instance - Posts a message to a room. +**Note:** The package APIs may change, while the package is in beta. - Posts a message, and optionally, a media content attachment, to a room. - You must specify either a roomId, toPersonId or toPersonEmail when - posting a message, and you must supply some message content (text, - markdown, files). +Support +------- - Args: - roomId(string_types): The room ID. - toPersonId(string_types): The ID of the recipient when sending a - private 1:1 message. - ... +This is a *community developed* and *community supported* project. If you +experience any issues using this package, please report them using the +issues_ log. Contribution ------------ -ciscosparkapi_ and it's sister project ciscosparksdk_ are community development projects. Feedback, thoughts, ideas and code contributions are most welcome! +ciscosparkapi_ and it's sister project ciscosparksdk_ are community +development projects. Feedback, thoughts, ideas and code contributions are +most welcome! -To contribute to ciscosparkapi please use the following resources: +**Feedback, issues, thoughts and ideas...** -Feedback, issues, thoughts and ideas... Please use the issues_ log. +Please use the issues_ log. -Interested in contributing code? +**Interested in contributing code?** -#. Check for open issues_ or create a new one. +#. Check for open issues_ or create a new 'issue' for the item you want + to work on. - * Assign yourself to the issue you want to work on, and communicate with any others that may be working the issue. - * Project workflow is being managed via the GitHub projects_ feature. Move your issue to the 'In Progress' column of the project being worked. + * Assign yourself to the issue, and communicate with any others that may be + working it. #. Review the project charter_ for coding standards and practices. #. Fork a copy of `the repository`_. #. Add your code to your forked repository. -#. Submit a `pull request`_, and move your issue to the 'Code Review' column on the projects_ page. +#. Submit a `pull request`_. *Copyright (c) 2016 Cisco Systems, Inc.* - -.. _developer.ciscospark.com: https://developer.ciscospark.com +.. _Introduction: http://ciscosparkapi.readthedocs.io/en/latest/user/intro.html .. _pagination: https://developer.ciscospark.com/pagination.html -.. _PyCharm: https://www.jetbrains.com/pycharm/ -.. _examples: https://github.com/CiscoDevNet/ciscosparkapi/tree/master/examples -.. _source files: https://github.com/CiscoDevNet/ciscosparkapi/tree/master/ciscosparkapi .. _ciscosparkapi.readthedocs.io: https://ciscosparkapi.readthedocs.io +.. _Quickstart: http://ciscosparkapi.readthedocs.io/en/latest/user/quickstart.html +.. _examples: https://github.com/CiscoDevNet/ciscosparkapi/tree/master/examples .. _ciscosparkapi: https://github.com/CiscoDevNet/ciscosparkapi .. _ciscosparksdk: https://github.com/CiscoDevNet/ciscosparksdk .. _issues: https://github.com/CiscoDevNet/ciscosparkapi/issues diff --git a/docs/conf.py b/docs/conf.py index 9ff3230..acc9e42 100644 --- a/docs/conf.py +++ b/docs/conf.py @@ -1,34 +1,23 @@ # -*- coding: utf-8 -*- -# -# ciscosparkapi documentation build configuration file, created by -# sphinx-quickstart on Thu Oct 20 09:54:48 2016. -# -# This file is execfile()d with the current directory set to its -# containing dir. -# -# Note that not all possible configuration values are present in this -# autogenerated file. -# -# All configuration values have a default; values that are commented out -# serve to show the default. -# If extensions (or modules to document with autodoc) are in another directory, -# add these directories to sys.path here. If the directory is relative to the -# documentation root, use os.path.abspath to make it absolute, like shown here. -# import os import sys + + sys.path.insert(0, os.path.abspath('..')) -# -- General configuration ------------------------------------------------ -# If your documentation needs a minimal Sphinx version, state it here. -# -# needs_sphinx = '1.0' +from ciscosparkapi._version import get_versions + + +project = u'ciscosparkapi' +copyright = u'2016 Cisco Systems, Inc.' +author = u'Chris Lunsford' +version = get_versions()['version'] +release = get_versions()['version'] +language = None + -# Add any Sphinx extension module names here, as strings. They can be -# extensions coming with Sphinx (named 'sphinx.ext.*') or your custom -# ones. extensions = [ 'sphinx.ext.autodoc', 'sphinx.ext.doctest', @@ -36,103 +25,38 @@ 'sphinx.ext.todo', 'sphinx.ext.coverage', 'sphinx.ext.viewcode', - 'sphinx.ext.githubpages', - 'sphinx.ext.napoleon' + 'sphinx.ext.napoleon', ] -# Add any paths that contain templates here, relative to this directory. -templates_path = ['_templates'] - -# The suffix(es) of source filenames. -# You can specify multiple suffix as a list of string: -# -# source_suffix = ['.rst', '.md'] -source_suffix = '.rst' - -# The encoding of source files. -# -# source_encoding = 'utf-8-sig' -# The master toctree document. master_doc = 'index' +source_suffix = '.rst' +exclude_patterns = ['_build', 'Thumbs.db', '.DS_Store'] +templates_path = ['_templates'] +pygments_style = 'sphinx' -# General information about the project. -project = u'ciscosparkapi' -copyright = u'2016 Cisco Systems, Inc.' -author = u'Chris Lunsford' - -# The version info for the project you're documenting, acts as replacement for -# |version| and |release|, also used in various other places throughout the -# built documents. -# -# The short X.Y version. -version = u'v0.3' -# The full version, including alpha/beta/rc tags. -release = u'v0.3' - -# The language for content autogenerated by Sphinx. Refer to documentation -# for a list of supported languages. -# -# This is also used if you do content translation via gettext catalogs. -# Usually you set "language" from the command line for these cases. -language = None - -# There are two options for replacing |today|: either, you set today to some -# non-false value, then it is used: -# -# today = '' -# -# Else, today_fmt is used as the format for a strftime call. -# -# today_fmt = '%B %d, %Y' -# List of patterns, relative to source directory, that match files and -# directories to ignore when looking for source files. -# This patterns also effect to html_static_path and html_extra_path -exclude_patterns = ['_build', 'Thumbs.db', '.DS_Store'] -# autodoc Parameters autodoc_member_order = 'bysource' autodoc_default_flags = ['members', 'undoc-members'] -# The reST default role (used for this markup: `text`) to use for all -# documents. -# -# default_role = None -# If true, '()' will be appended to :func: etc. cross-reference text. -# -# add_function_parentheses = True - -# If true, the current module name will be prepended to all description -# unit titles (such as .. function::). -# -# add_module_names = True - -# If true, sectionauthor and moduleauthor directives will be shown in the -# output. They are ignored by default. -# -# show_authors = False - -# The name of the Pygments (syntax highlighting) style to use. -pygments_style = 'sphinx' - -# A list of ignored prefixes for module index sorting. -# modindex_common_prefix = [] - -# If true, keep warnings as "system message" paragraphs in the built documents. -# keep_warnings = False - -# If true, `todo` and `todoList` produce output, else they produce nothing. todo_include_todos = True + # -- Options for HTML output ---------------------------------------------- # The theme to use for HTML and HTML Help pages. See the documentation for # a list of builtin themes. # -html_theme = 'alabaster' +#html_theme = 'alabaster' +on_rtd = os.environ.get('READTHEDOCS', None) == 'True' + +if not on_rtd: + import sphinx_rtd_theme + html_theme = 'sphinx_rtd_theme' + html_theme_path = [sphinx_rtd_theme.get_html_theme_path()] # Theme options are theme-specific and customize the look and feel of a theme # further. For a list of options available for each theme, see the @@ -248,6 +172,8 @@ # Output file base name for HTML help builder. htmlhelp_basename = 'ciscosparkapidoc' + + # -- Options for LaTeX output --------------------------------------------- latex_elements = { @@ -309,6 +235,7 @@ # latex_domain_indices = True + # -- Options for manual page output --------------------------------------- # One entry per manual page. List of tuples @@ -323,6 +250,7 @@ # man_show_urls = False + # -- Options for Texinfo output ------------------------------------------- # Grouping the document tree into Texinfo files. List of tuples diff --git a/docs/user/intro.rst b/docs/user/intro.rst index 204cdcf..03d3e1e 100644 --- a/docs/user/intro.rst +++ b/docs/user/intro.rst @@ -4,34 +4,125 @@ Introduction ============ -ciscosparkapi is a *community developed* Pythonic wrapping of the Cisco Spark -APIs. - -*What do we mean by a 'Python wrapping' of the APIs?* - -=============================== ============================================== -Cisco Spark API ciscosparkapi Package -=============================== ============================================== -Authentication, URLs, & headers Wrapped in a simple :class:`CiscoSparkAPI` - "connection object" -------------------------------- ---------------------------------------------- -API Endpoints & Calls Wrapped and represented as native method / - function calls hierarchically structured - underneath the :class:`CiscoSparkAPI` - "connection object" -------------------------------- ---------------------------------------------- -Returned Spark Data Objects Wrapped and represented as native Python - objects -------------------------------- ---------------------------------------------- -Returned Lists of Objects Wrapped and represented as iterable sequences - that yield the native Spark Data Objects -=============================== ============================================== - -The idea is to enable you to work with the Cisco Spark APIs using native Python -objects and tools, such that you can focus on your code and not have to write -boiler-plate code to handle the API mechanics. - -Head over to the :ref:`Quickstart` page to get started. + +Work with the Cisco Spark APIs in Native Python! +------------------------------------------------ + +Sure, working with the Cisco Spark APIs is easy (see +`developer.ciscospark.com`_). They are RESTful, naturally structured, +require only a simple Access Token for authentication, and the data is +elegantly represented in intuitive JSON. What could be easier? + +.. code-block:: python + + import requests + + URL = 'https://api.ciscospark.com/v1/messages' + ACCESS_TOKEN = '' + ROOM_ID = '' + MESSAGE_TEXT = '' + + headers = {'Authorization': 'Bearer ' + ACCESS_TOKEN, + 'Content-type': 'application/json;charset=utf-8'} + post_data = {'roomId': ROOM_ID, + 'text': MESSAGE_TEXT} + response = requests.post(URL, json=post_data, headers=headers) + if response.status_code == 200: + # Great your message was posted! + message_id = response.json['id'] + message_text = response.json['text'] + print("New message created, with ID:", message_id) + print(message_text) + else: + # Oops something went wrong... Better do something about it. + print(response.status_code, response.text) + +Like I said, EASY. However, in use, the code can become rather repetitive... + +- You have to setup the environment every time +- You have to remember URLs, request parameters and JSON formats + (or reference the docs) +- You have to parse the returned JSON and work with multiple layers of list + and dictionary indexes +- When requesting lists of items, you have to deal with pagination_ + + +Enter **ciscosparkapi**, a simple API wrapper that wraps all of the Spark API +calls and returned JSON objects within native Python objects and methods. + +With ciscosparkapi, the above Python code can be consolidated to the following: + +.. code-block:: python + + from ciscosparkapi import CiscoSparkAPI + + api = CiscoSparkAPI() + try: + message = api.messages.create('', text='') + print("New message created, with ID:", message.id) + print(message.text) + except SparkApiError as e: + print(e) + + +**ciscosparkapi handles all of this for you:** + ++ Reads your Spark access token from a ``SPARK_ACCESS_TOKEN`` environment + variable + ++ Wraps and represents all Spark API calls as a simple hierarchical tree of + native-Python methods (with default arguments provided everywhere possible!) + ++ If your Python IDE supports **auto-completion** (like PyCharm_), you can + navigate the available methods and object attributes right within your IDE + ++ Represents all returned JSON objects as native Python objects - you can + access all of the object's attributes using native *dot.syntax* + ++ **Automatic and Transparent Pagination!** When requesting 'lists of objects' + from Spark, requests for additional pages of responses are efficiently and + automatically requested as needed + ++ Multipart encoding and uploading of local files, when creating messages with + local file attachments + + +All of this, combined, lets you do powerful things simply: + +.. code-block:: python + + from ciscosparkapi import CiscoSparkAPI + + api = CiscoSparkAPI() + + # Find all rooms that have 'ciscosparkapi Demo' in their title + all_rooms = api.rooms.list() + demo_rooms = [room for room in all_rooms if 'ciscosparkapi Demo' in room.title] + + # Delete all of the demo rooms + for room in demo_rooms: + api.rooms.delete(room.id) + + # Create a new demo room + demo_room = api.rooms.create('ciscosparkapi Demo') + + # Add people to the new demo room + email_addresses = ["test01@cmlccie.com", "test02@cmlccie.com"] + for email in email_addresses: + api.memberships.create(demo_room.id, personEmail=email) + + # Post a message to the new room, and upload a file + api.messages.create(demo_room.id, text="Welcome to the room!", + files=["https://developer.ciscospark.com/images/logo_spark_lg@256.png"]) + + +That's more than 6 Spark API calls in less than 23 lines of code (with comments +and whitespace), and likely more than that since ciscosparkapi handles +pagination_ for you automatically! + +Head over to the :ref:`Quickstart` page to begin working with the +**Cisco Spark APIs in native Python**! + .. _License: @@ -40,7 +131,7 @@ MIT License ciscosparkapi is currently licensed under the `MIT Open Source License`_, and distributed as a source distribution (no binaries) via :ref:`PyPI `, -and the complete :ref:`Source Code` is available on GitHub. +and the complete :ref:`source code ` is available on GitHub. ciscosparkapi License --------------------- @@ -48,6 +139,11 @@ ciscosparkapi License .. include:: ../../LICENSE -.. _MIT Open Source License: https://opensource.org/licenses/MIT *Copyright (c) 2016 Cisco Systems, Inc.* + +.. _MIT Open Source License: https://opensource.org/licenses/MIT +.. _developer.ciscospark.com: https://developer.ciscospark.com +.. _pagination: https://developer.ciscospark.com/pagination.html +.. _PyCharm: https://www.jetbrains.com/pycharm/ + diff --git a/examples/ngrokwebhook.py b/examples/ngrokwebhook.py new file mode 100644 index 0000000..514062d --- /dev/null +++ b/examples/ngrokwebhook.py @@ -0,0 +1,74 @@ +#sample script that reads ngrok info from localhost:4040 and create Cisco Spark Webhook +#typicall ngrok is called "ngrok http 8080" to redirect localhost:8080 to Internet +#accesible ngrok url +# +#To use script simply launch ngrok, then launch this script. After ngrok is killed, run this +#script a second time to remove webhook from Cisco Spark + + +import requests +import json +import re +import sys +import requests.packages.urllib3 +requests.packages.urllib3.disable_warnings() +from ciscosparkapi import CiscoSparkAPI, Webhook + +def findwebhookidbyname(api, webhookname): + webhooks = api.webhooks.list() + for wh in webhooks: + if wh.name == webhookname: + return wh.id + else: + return "not found" + +#Webhook attributes +webhookname="testwebhook" +resource="messages" +event="created" +url_suffix="/sparkwebhook" + +#grab the at from a local at.txt file instead of global variable +fat=open ("at.txt","r+") +at=fat.readline().rstrip() +fat.close + +api = CiscoSparkAPI(at) + +#go to the localhost page for nogrok and grab the public url for http +try: + ngrokpage = requests.get("http://127.0.0.1:4040").text +except: + print ("no ngrok running - deleting webhook if it exists") + whid=findwebhookidbyname(api, webhookname) + if "not found" in whid: + print ("no webhook found") + sys.exit() + else: + print (whid) + dict=api.webhooks.delete(whid) + print (dict) + print ("Webhook deleted") + sys.exit() + +for line in ngrokpage.split("\n"): + if "window.common = " in line: + ngrokjson = re.search('JSON.parse\(\"(.+)\"\)\;',line).group(1) + ngrokjson = (ngrokjson.replace('\\','')) +print (ngrokjson) +Url = (json.loads(ngrokjson)["Session"]["Tunnels"]["command_line (http)"]["URL"])+url_suffix +print (Url) + +#check if the webhook exists by name and then create it if not +whid=findwebhookidbyname(api, webhookname) + +if "not found" in whid: + #create + print ("not found") + dict=api.webhooks.create(webhookname, Url, resource, event) + print (dict) +else: + #update + print (whid) + dict=api.webhooks.update(whid, name=webhookname, targetUrl=Url) + print (dict) diff --git a/requirements.txt b/requirements.txt new file mode 100644 index 0000000..a95e30d --- /dev/null +++ b/requirements.txt @@ -0,0 +1,15 @@ +alabaster==0.7.9 +Babel==2.3.4 +docutils==0.12 +future==0.16.0 +imagesize==0.7.1 +Jinja2==2.8 +MarkupSafe==0.23 +Pygments==2.1.3 +pytz==2016.7 +requests==2.12.1 +requests-toolbelt==0.7.0 +six==1.10.0 +snowballstemmer==1.2.1 +Sphinx==1.4.9 +versioneer==0.17 From 57e03b32db67dee397492b970bc548edec69c26d Mon Sep 17 00:00:00 2001 From: Chris Lunsford Date: Tue, 13 Dec 2016 22:03:12 +0800 Subject: [PATCH 24/37] Merge branch 'master' into development # Conflicts: # README.rst --- README.rst | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/README.rst b/README.rst index 6d02f7c..dfc8bbf 100644 --- a/README.rst +++ b/README.rst @@ -2,11 +2,14 @@ ciscosparkapi ============= +*Simple, lightweight, scalable Python API wrapper for the Cisco Spark APIs* + .. image:: https://img.shields.io/pypi/v/ciscosparkapi.svg :target: https://pypi.python.org/pypi/ciscosparkapi .. image:: https://readthedocs.org/projects/ciscosparkapi/badge/?version=latest :target: http://ciscosparkapi.readthedocs.io/en/latest/?badge=latest +------------------------------------------------------------------------------- **ciscosparkapi** is a *community developed* Pythonic wrapping of the Cisco Spark APIs, which makes working with Cisco Spark in Python a *native* and @@ -150,7 +153,7 @@ Please use the issues_ log. to work on. * Assign yourself to the issue, and communicate with any others that may be - working it. + working the issue. #. Review the project charter_ for coding standards and practices. #. Fork a copy of `the repository`_. From c76abbd3826fbf36134d331e430e0ae28399ea91 Mon Sep 17 00:00:00 2001 From: Chris Lunsford Date: Wed, 14 Dec 2016 00:02:46 +0800 Subject: [PATCH 25/37] Add ACCESS_TOKEN_ENVIRONEMENT_VARIABLE package-level constant MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Add a ACCESS_TOKEN_ENVIRONEMENT_VARIABLE package-level constant that specifies the name of the environment variable that is referenced by the package to retrieve a user’s Spark access token from the environment. --- ciscosparkapi/__init__.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/ciscosparkapi/__init__.py b/ciscosparkapi/__init__.py index e0d86ed..557b5c2 100644 --- a/ciscosparkapi/__init__.py +++ b/ciscosparkapi/__init__.py @@ -34,6 +34,7 @@ DEFAULT_BASE_URL = 'https://api.ciscospark.com/v1/' DEFAULT_TIMEOUT = 60 +ACCESS_TOKEN_ENVIRONMENT_VARIABLE = 'SPARK_ACCESS_TOKEN' class CiscoSparkAPI(object): @@ -104,7 +105,7 @@ def __init__(self, access_token=None, base_url=DEFAULT_BASE_URL, assert access_token is None or isinstance(access_token, string_types) assert isinstance(base_url, string_types) assert isinstance(timeout, int) - spark_access_token = os.environ.get('SPARK_ACCESS_TOKEN', None) + spark_access_token = os.environ.get(ACCESS_TOKEN_ENVIRONMENT_VARIABLE) access_token = access_token if access_token else spark_access_token if not access_token: error_message = "You must provide an Spark access token to " \ From 7e6dc736202689cb8537fee2e517aa90ee738796 Mon Sep 17 00:00:00 2001 From: Chris Lunsford Date: Wed, 14 Dec 2016 00:04:52 +0800 Subject: [PATCH 26/37] Initial pytest and tox setup --- requirements.txt | 7 +++++++ tox.ini | 7 +++++++ 2 files changed, 14 insertions(+) create mode 100644 tox.ini diff --git a/requirements.txt b/requirements.txt index a95e30d..8aff43b 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,15 +1,22 @@ alabaster==0.7.9 Babel==2.3.4 +-e git+https://github.com/CiscoDevNet/ciscosparkapi.git@c76abbd3826fbf36134d331e430e0ae28399ea91#egg=ciscosparkapi docutils==0.12 future==0.16.0 imagesize==0.7.1 Jinja2==2.8 MarkupSafe==0.23 +pluggy==0.4.0 +py==1.4.31 Pygments==2.1.3 +pytest==3.0.5 pytz==2016.7 requests==2.12.1 requests-toolbelt==0.7.0 six==1.10.0 snowballstemmer==1.2.1 Sphinx==1.4.9 +sphinx-rtd-theme==0.1.9 +tox==2.5.0 versioneer==0.17 +virtualenv==15.1.0 diff --git a/tox.ini b/tox.ini new file mode 100644 index 0000000..42da594 --- /dev/null +++ b/tox.ini @@ -0,0 +1,7 @@ +[tox] +envlist = py27, py35 + +[testenv] +deps = pytest +commands = py.test +passenv = SPARK_ACCESS_TOKEN From 615892cebd01e4d1ce90285553629a03d7413d83 Mon Sep 17 00:00:00 2001 From: Chris Lunsford Date: Wed, 14 Dec 2016 00:05:39 +0800 Subject: [PATCH 27/37] Initial commit - package tests --- tests/test_ciscosparkapi_online.py | 34 ++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) create mode 100644 tests/test_ciscosparkapi_online.py diff --git a/tests/test_ciscosparkapi_online.py b/tests/test_ciscosparkapi_online.py new file mode 100644 index 0000000..8bb30d5 --- /dev/null +++ b/tests/test_ciscosparkapi_online.py @@ -0,0 +1,34 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- + +import os + +import pytest + +import ciscosparkapi + + +class TestPackage: + """Test the ciscosparkapi package-level code.""" + + def test_creating_a_new_ciscosparkapi_object_without_an_access_token_raises_an_exception(self): + at = os.environ.get(ciscosparkapi.ACCESS_TOKEN_ENVIRONMENT_VARIABLE) + del os.environ[ciscosparkapi.ACCESS_TOKEN_ENVIRONMENT_VARIABLE] + + with pytest.raises(ciscosparkapi.ciscosparkapiException): + connection_object = ciscosparkapi.CiscoSparkAPI() + + os.environ[ciscosparkapi.ACCESS_TOKEN_ENVIRONMENT_VARIABLE] = at + + def test_creating_a_new_ciscosparkapi_object_via_access_token_argument(self): + at = os.environ.get(ciscosparkapi.ACCESS_TOKEN_ENVIRONMENT_VARIABLE) + del os.environ[ciscosparkapi.ACCESS_TOKEN_ENVIRONMENT_VARIABLE] + + connection_object = ciscosparkapi.CiscoSparkAPI(access_token=at) + assert connection_object + + os.environ[ciscosparkapi.ACCESS_TOKEN_ENVIRONMENT_VARIABLE] = at + + def test_creating_a_new_ciscosparkapi_object_via_environment_varable(self): + connection_object = ciscosparkapi.CiscoSparkAPI() + assert connection_object From 6a4b1db656049b3195dc43777c90e78d5e344791 Mon Sep 17 00:00:00 2001 From: Chris Lunsford Date: Sat, 7 Jan 2017 23:51:38 -0500 Subject: [PATCH 28/37] Setup tests package structure and Create Initial Rooms Tests Create the pytest tests-package structure, initial Rooms tests and supporting fixtures. --- tests/__init__.py | 1 + tests/api/__init__.py | 1 + tests/api/test_accesstokens.py | 15 +++++ tests/api/test_memberships.py | 47 +++++++++++++++ tests/api/test_messages.py | 32 ++++++++++ tests/api/test_people.py | 21 +++++++ tests/api/test_rooms.py | 97 ++++++++++++++++++++++++++++++ tests/api/test_teammemberships.py | 33 ++++++++++ tests/api/test_teams.py | 28 +++++++++ tests/api/test_webhooks.py | 18 ++++++ tests/conftest.py | 31 ++++++++++ tests/test_ciscosparkapi.py | 95 +++++++++++++++++++++++++++++ tests/test_ciscosparkapi_online.py | 34 ----------- tests/utils.py | 19 ++++++ 14 files changed, 438 insertions(+), 34 deletions(-) create mode 100644 tests/__init__.py create mode 100644 tests/api/__init__.py create mode 100644 tests/api/test_accesstokens.py create mode 100644 tests/api/test_memberships.py create mode 100644 tests/api/test_messages.py create mode 100644 tests/api/test_people.py create mode 100644 tests/api/test_rooms.py create mode 100644 tests/api/test_teammemberships.py create mode 100644 tests/api/test_teams.py create mode 100644 tests/api/test_webhooks.py create mode 100644 tests/conftest.py create mode 100644 tests/test_ciscosparkapi.py delete mode 100644 tests/test_ciscosparkapi_online.py create mode 100644 tests/utils.py diff --git a/tests/__init__.py b/tests/__init__.py new file mode 100644 index 0000000..40a96af --- /dev/null +++ b/tests/__init__.py @@ -0,0 +1 @@ +# -*- coding: utf-8 -*- diff --git a/tests/api/__init__.py b/tests/api/__init__.py new file mode 100644 index 0000000..40a96af --- /dev/null +++ b/tests/api/__init__.py @@ -0,0 +1 @@ +# -*- coding: utf-8 -*- diff --git a/tests/api/test_accesstokens.py b/tests/api/test_accesstokens.py new file mode 100644 index 0000000..0095b59 --- /dev/null +++ b/tests/api/test_accesstokens.py @@ -0,0 +1,15 @@ +# -*- coding: utf-8 -*- + + +import pytest + +from tests.utils import create_string + + +# Helper Functions + + + + +# pytest Fixtures + diff --git a/tests/api/test_memberships.py b/tests/api/test_memberships.py new file mode 100644 index 0000000..f85133c --- /dev/null +++ b/tests/api/test_memberships.py @@ -0,0 +1,47 @@ +# -*- coding: utf-8 -*- + +"""pytest Memberships functions, fixtures and tests.""" + + +import pytest + +import ciscosparkapi + + +# Helper Functions + +def add_people_to_room(api, room, emails): + for email in emails: + api.memberships.create(room.id, personEmail=email) + + +def empty_room(api, me, room): + """Remove all memberships from a room (except the caller's membership).""" + memberships = api.memberships.list(room.id) + for membership in memberships: + if membership.personId != me.id: + api.memberships.delete(membership.id) + + +# pytest Fixtures + +@pytest.fixture(scope="session") +def group_room_with_members(api, me, group_room, email_addresses): + add_people_to_room(api, group_room, email_addresses) + yield group_room + empty_room(api, me, group_room) + + +@pytest.fixture(scope="session") +def team_room_with_members(api, me, team_room, email_addresses): + add_people_to_room(api, team_room, email_addresses) + yield team_room + empty_room(api, me, team_room) + + +@pytest.fixture +def temp_group_room_with_members(api, me, temp_group_room, email_addresses): + add_people_to_room(api, temp_group_room, email_addresses) + yield temp_group_room + empty_room(api, me, temp_group_room) + diff --git a/tests/api/test_messages.py b/tests/api/test_messages.py new file mode 100644 index 0000000..8bea049 --- /dev/null +++ b/tests/api/test_messages.py @@ -0,0 +1,32 @@ +# -*- coding: utf-8 -*- + +"""pytest Messages functions, fixtures and tests.""" + + +import pytest + +import ciscosparkapi +from tests.utils import create_string + + +# Helper Functions + + + + +# pytest Fixtures + +@pytest.fixture(scope="session") +def direct_messages(api, email_addresses): + msg_text = create_string("Message") + messages = [] + for email in email_addresses: + messages.append(api.messages.create(toPersonEmail=email, + text=msg_text)) + yield messages + delete_messages(api, messages) + + +def delete_messages(api, messages): + for message in messages: + api.messages.delete(message.id) diff --git a/tests/api/test_people.py b/tests/api/test_people.py new file mode 100644 index 0000000..a399fa4 --- /dev/null +++ b/tests/api/test_people.py @@ -0,0 +1,21 @@ +# -*- coding: utf-8 -*- + +"""pytest People functions, fixtures and tests.""" + + +import pytest + +import ciscosparkapi +from tests.utils import create_string + + +# Helper Functions + + + + +# pytest Fixtures + +@pytest.fixture(scope="session") +def me(api): + return api.people.me() diff --git a/tests/api/test_rooms.py b/tests/api/test_rooms.py new file mode 100644 index 0000000..5bb0448 --- /dev/null +++ b/tests/api/test_rooms.py @@ -0,0 +1,97 @@ +# -*- coding: utf-8 -*- + +"""pytest Rooms functions, fixtures and tests.""" + + +import pytest + +import ciscosparkapi +from tests.utils import create_string + + +NUM_MULTIPLE_ROOMS = 10 + + +# Helper Functions + +def create_room(api, title): + return api.rooms.create(title) + + +def create_team_room(api, team, room_title): + return api.rooms.create(room_title, teamId=team.id) + + +def delete_room(api, room): + api.rooms.delete(room.id) + + +# pytest Fixtures + +@pytest.fixture(scope="session") +def direct_rooms(api, direct_messages): + return [api.rooms.get(message.roomId) for message in direct_messages] + + +@pytest.fixture(scope="session") +def group_room(api): + room = create_room(api, create_string("Room")) + yield room + delete_room(api, room) + + +@pytest.fixture(scope="session") +def team_room(api, team): + team_room = create_team_room(api, team, create_string("Team Room")) + yield team_room + delete_room(api, team_room) + + +@pytest.fixture(scope="session") +def ten_group_rooms(api): + rooms = [create_room(api, create_string("Room")) for i in range(10)] + yield rooms + for room in rooms: + delete_room(api, room) + + +@pytest.fixture +def temp_group_room(api): + room = create_room(api, create_string("Room")) + yield room + delete_room(api, room) + + +# Room Tests + +class TestRoomsAPI(object): + """Test RoomsAPI methods.""" + + @pytest.mark.usefixtures("group_room") + def test_list_all_rooms(self, api): + rooms_list = list(api.rooms.list()) + assert len(rooms_list) > 0 + + @pytest.mark.usefixtures("ten_group_rooms") + def test_list_all_rooms_with_paging(self, api): + rooms_list = list(api.rooms.list(max=5)) + assert len(rooms_list) >= 10 + + @pytest.mark.usefixtures("group_room") + def test_list_group_rooms(self, api): + group_rooms_list = list(api.rooms.list(type='group')) + assert len(group_rooms_list) > 0 + + @pytest.mark.usefixtures("direct_rooms") + def test_list_direct_rooms(self, api): + direct_rooms_list = list(api.rooms.list(type='direct')) + assert len(direct_rooms_list) > 0 + + @pytest.mark.usefixtures("team_room") + def test_list_team_rooms(self, api, team): + team_rooms_list = list(api.rooms.list(teamId=team.id)) + assert len(team_rooms_list) > 0 + + def test_create_room(self, group_room): + assert isinstance(group_room, ciscosparkapi.Room) \ + and group_room.id is not None diff --git a/tests/api/test_teammemberships.py b/tests/api/test_teammemberships.py new file mode 100644 index 0000000..69b4a4b --- /dev/null +++ b/tests/api/test_teammemberships.py @@ -0,0 +1,33 @@ +# -*- coding: utf-8 -*- + +"""pytest Team Memberships functions, fixtures and tests.""" + + +import pytest + +import ciscosparkapi +from tests.utils import create_string + + +# Helper Functions + +def add_people_to_team(api, team, emails): + for email in emails: + api.team_memberships.create(team.id, personEmail=email) + + +def empty_team(api, me, team): + """Remove all memberships from a team (except the caller's membership).""" + memberships = api.team_memberships.list(team.id) + for membership in memberships: + if membership.personId != me.id: + api.team_memberships.delete(membership.id) + + +# pytest Fixtures + +@pytest.fixture(scope="session") +def team_with_members(api, me, team, email_addresses): + add_people_to_team(api, team, email_addresses) + yield team + empty_team(api, me, team) diff --git a/tests/api/test_teams.py b/tests/api/test_teams.py new file mode 100644 index 0000000..3cb78d3 --- /dev/null +++ b/tests/api/test_teams.py @@ -0,0 +1,28 @@ +# -*- coding: utf-8 -*- + +"""pytest Team functions, fixtures and tests.""" + + +import pytest + +import ciscosparkapi +from tests.utils import create_string + + +# Helper Functions + +def create_team(api, name): + return api.teams.create(name) + + +def delete_team(api, team): + api.teams.delete(team.id) + + +# pytest Fixtures + +@pytest.fixture(scope="session") +def team(api): + team = create_team(api, create_string("Team")) + yield team + delete_team(api, team) diff --git a/tests/api/test_webhooks.py b/tests/api/test_webhooks.py new file mode 100644 index 0000000..6ea1a48 --- /dev/null +++ b/tests/api/test_webhooks.py @@ -0,0 +1,18 @@ +# -*- coding: utf-8 -*- + +"""pytest Webhooks functions, fixtures and tests.""" + + +import pytest + +import ciscosparkapi +from tests.utils import create_string + + +# Helper Functions + + + + +# pytest Fixtures + diff --git a/tests/conftest.py b/tests/conftest.py new file mode 100644 index 0000000..b110bce --- /dev/null +++ b/tests/conftest.py @@ -0,0 +1,31 @@ +# -*- coding: utf-8 -*- + +"""pytest configuration and top-level fixtures.""" + +import pytest + + +EMAIL_ADDRESSES = [ + 'test98@cmlccie.com', + 'test99@cmlccie.com', +] + + +pytest_plugins = [ + 'tests.test_ciscosparkapi', + 'tests.api.test_accesstokens', + 'tests.api.test_memberships', + 'tests.api.test_messages', + 'tests.api.test_people', + 'tests.api.test_rooms', + 'tests.api.test_teammemberships', + 'tests.api.test_teams', + 'tests.api.test_webhooks', +] + + +# pytest Fixtures + +@pytest.fixture(scope="session") +def email_addresses(): + return EMAIL_ADDRESSES diff --git a/tests/test_ciscosparkapi.py b/tests/test_ciscosparkapi.py new file mode 100644 index 0000000..f9a95fc --- /dev/null +++ b/tests/test_ciscosparkapi.py @@ -0,0 +1,95 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- + +"""ciscosparkapi/__init__.py Fixtures & Tests""" + +import os + +import pytest + +import ciscosparkapi + + +# pytest Fixtures + +@pytest.fixture(scope="session") +def access_token(): + return os.environ.get(ciscosparkapi.ACCESS_TOKEN_ENVIRONMENT_VARIABLE) + + +@pytest.fixture +def unset_access_token(access_token): + del os.environ[ciscosparkapi.ACCESS_TOKEN_ENVIRONMENT_VARIABLE] + yield None + os.environ[ciscosparkapi.ACCESS_TOKEN_ENVIRONMENT_VARIABLE] = access_token + + +@pytest.fixture(scope="session") +def api(): + return ciscosparkapi.CiscoSparkAPI() + + +# CiscoSparkAPI Tests + +class TestCiscoSparkAPI: + """Test the CiscoSparkAPI package-level code.""" + + # Test creating CiscoSparkAPI objects + + @pytest.mark.usefixtures("unset_access_token") + def test_creating_a_new_ciscosparkapi_object_without_an_access_token(self): + with pytest.raises(ciscosparkapi.ciscosparkapiException): + ciscosparkapi.CiscoSparkAPI() + + @pytest.mark.usefixtures("unset_access_token") + def test_creating_a_new_ciscosparkapi_object_via_access_token_argument(self, access_token): + connection_object = ciscosparkapi.CiscoSparkAPI(access_token=access_token) + assert isinstance(connection_object,ciscosparkapi.CiscoSparkAPI) + + def test_creating_a_new_ciscosparkapi_object_via_environment_varable(self): + connection_object = ciscosparkapi.CiscoSparkAPI() + assert isinstance(connection_object,ciscosparkapi.CiscoSparkAPI) + + def test_default_base_url(self): + connection_object = ciscosparkapi.CiscoSparkAPI() + assert connection_object.base_url == ciscosparkapi.DEFAULT_BASE_URL + + def test_custom_base_url(self): + custom_url = "https://spark.cmlccie.com/v1/" + connection_object = ciscosparkapi.CiscoSparkAPI(base_url=custom_url) + assert connection_object.base_url == custom_url + + def test_default_timeout(self): + connection_object = ciscosparkapi.CiscoSparkAPI() + assert connection_object.timeout == ciscosparkapi.DEFAULT_TIMEOUT + + def test_custom_timeout(self): + custom_timeout = 10 + connection_object = ciscosparkapi.CiscoSparkAPI(timeout=custom_timeout) + assert connection_object.timeout == custom_timeout + + # Test creation of component API objects + + def test_people_api_object_creation(self, api): + assert isinstance(api.people, ciscosparkapi.PeopleAPI) + + def test_rooms_api_object_creation(self, api): + assert isinstance(api.rooms, ciscosparkapi.RoomsAPI) + + def test_memberships_api_object_creation(self, api): + assert isinstance(api.memberships, ciscosparkapi.MembershipsAPI) + + def test_messages_api_object_creation(self, api): + assert isinstance(api.messages, ciscosparkapi.MessagesAPI) + + def test_teams_api_object_creation(self, api): + assert isinstance(api.teams, ciscosparkapi.TeamsAPI) + + def test_team_memberships_api_object_creation(self, api): + assert isinstance(api.team_memberships, ciscosparkapi.TeamMembershipsAPI) + + def test_webhooks_api_object_creation(self, api): + assert isinstance(api.webhooks, ciscosparkapi.WebhooksAPI) + + def test_access_tokens_api_object_creation(self, api): + assert isinstance(api.access_tokens, ciscosparkapi.AccessTokensAPI) diff --git a/tests/test_ciscosparkapi_online.py b/tests/test_ciscosparkapi_online.py deleted file mode 100644 index 8bb30d5..0000000 --- a/tests/test_ciscosparkapi_online.py +++ /dev/null @@ -1,34 +0,0 @@ -#!/usr/bin/env python -# -*- coding: utf-8 -*- - -import os - -import pytest - -import ciscosparkapi - - -class TestPackage: - """Test the ciscosparkapi package-level code.""" - - def test_creating_a_new_ciscosparkapi_object_without_an_access_token_raises_an_exception(self): - at = os.environ.get(ciscosparkapi.ACCESS_TOKEN_ENVIRONMENT_VARIABLE) - del os.environ[ciscosparkapi.ACCESS_TOKEN_ENVIRONMENT_VARIABLE] - - with pytest.raises(ciscosparkapi.ciscosparkapiException): - connection_object = ciscosparkapi.CiscoSparkAPI() - - os.environ[ciscosparkapi.ACCESS_TOKEN_ENVIRONMENT_VARIABLE] = at - - def test_creating_a_new_ciscosparkapi_object_via_access_token_argument(self): - at = os.environ.get(ciscosparkapi.ACCESS_TOKEN_ENVIRONMENT_VARIABLE) - del os.environ[ciscosparkapi.ACCESS_TOKEN_ENVIRONMENT_VARIABLE] - - connection_object = ciscosparkapi.CiscoSparkAPI(access_token=at) - assert connection_object - - os.environ[ciscosparkapi.ACCESS_TOKEN_ENVIRONMENT_VARIABLE] = at - - def test_creating_a_new_ciscosparkapi_object_via_environment_varable(self): - connection_object = ciscosparkapi.CiscoSparkAPI() - assert connection_object diff --git a/tests/utils.py b/tests/utils.py new file mode 100644 index 0000000..5f472b4 --- /dev/null +++ b/tests/utils.py @@ -0,0 +1,19 @@ +# -*- coding: utf-8 -*- + +"""Tests helper functions and classes.""" + + +import datetime +import string + + +STRING_PREFIX = "ciscosparkapi py.test" +STRING_TEMPLATE = string.Template("$prefix $item [$datetime]") + + +# Helper Functions + +def create_string(item): + return STRING_TEMPLATE.substitute(prefix=STRING_PREFIX, + item=item, + datetime=str(datetime.datetime.now())) From a5ad77fae2d826c6aa914fee93acfa74365d4095 Mon Sep 17 00:00:00 2001 From: Chris Lunsford Date: Tue, 10 Jan 2017 00:50:37 -0500 Subject: [PATCH 29/37] Complete RoomsAPI Tests Complete the test suite for the RoomsAPI class. --- tests/api/test_rooms.py | 110 ++++++++++++++++++++++++++---------- tests/test_ciscosparkapi.py | 1 - 2 files changed, 81 insertions(+), 30 deletions(-) diff --git a/tests/api/test_rooms.py b/tests/api/test_rooms.py index 5bb0448..09338fe 100644 --- a/tests/api/test_rooms.py +++ b/tests/api/test_rooms.py @@ -2,6 +2,7 @@ """pytest Rooms functions, fixtures and tests.""" +import itertools import pytest @@ -9,9 +10,6 @@ from tests.utils import create_string -NUM_MULTIPLE_ROOMS = 10 - - # Helper Functions def create_room(api, title): @@ -26,8 +24,31 @@ def delete_room(api, room): api.rooms.delete(room.id) +def is_valid_room(room): + return isinstance(room, ciscosparkapi.Room) and room.id is not None + + +def are_valid_rooms(rooms_iterable): + rooms_are_valid = (is_valid_room(room) for room in rooms_iterable) + return all(rooms_are_valid) + + +def room_exists(api, room): + try: + api.rooms.get(room.id) + except ciscosparkapi.SparkApiError: + return False + else: + return True + + # pytest Fixtures +@pytest.fixture(scope="session") +def rooms_list(api): + return list(api.rooms.list()) + + @pytest.fixture(scope="session") def direct_rooms(api, direct_messages): return [api.rooms.get(message.roomId) for message in direct_messages] @@ -42,24 +63,29 @@ def group_room(api): @pytest.fixture(scope="session") def team_room(api, team): - team_room = create_team_room(api, team, create_string("Team Room")) + team_room = create_team_room(api, team, create_string("Team Room")) yield team_room delete_room(api, team_room) -@pytest.fixture(scope="session") -def ten_group_rooms(api): - rooms = [create_room(api, create_string("Room")) for i in range(10)] - yield rooms - for room in rooms: +@pytest.fixture +def temp_group_room(api): + room = create_room(api, create_string("Room")) + yield room + if room_exists(api, room): delete_room(api, room) @pytest.fixture -def temp_group_room(api): - room = create_room(api, create_string("Room")) - yield room - delete_room(api, room) +def add_rooms(api): + rooms = [] + def inner(num_rooms): + for i in range(num_rooms): + rooms.append(create_room(api, create_string("Additional Room"))) + return rooms + yield inner + for room in rooms: + delete_room(api, room) # Room Tests @@ -67,31 +93,57 @@ def temp_group_room(api): class TestRoomsAPI(object): """Test RoomsAPI methods.""" - @pytest.mark.usefixtures("group_room") - def test_list_all_rooms(self, api): - rooms_list = list(api.rooms.list()) - assert len(rooms_list) > 0 + def test_create_group_room(self, group_room): + assert is_valid_room(group_room) - @pytest.mark.usefixtures("ten_group_rooms") - def test_list_all_rooms_with_paging(self, api): - rooms_list = list(api.rooms.list(max=5)) - assert len(rooms_list) >= 10 + def test_create_team_room(self, team_room): + assert is_valid_room(team_room) + + def test_get_room_details(self, api, group_room): + room = api.rooms.get(group_room.id) + assert is_valid_room(room) + + def test_update_room_title(self, api, group_room): + new_title = create_string("Updated Room") + room = api.rooms.update(group_room.id, title=new_title) + assert is_valid_room(room) + assert room.title == new_title + + def test_delete_room(self, api, temp_group_room): + api.rooms.delete(temp_group_room.id) + assert not room_exists(api, temp_group_room) @pytest.mark.usefixtures("group_room") def test_list_group_rooms(self, api): group_rooms_list = list(api.rooms.list(type='group')) assert len(group_rooms_list) > 0 - - @pytest.mark.usefixtures("direct_rooms") - def test_list_direct_rooms(self, api): - direct_rooms_list = list(api.rooms.list(type='direct')) - assert len(direct_rooms_list) > 0 + assert are_valid_rooms(group_rooms_list) @pytest.mark.usefixtures("team_room") def test_list_team_rooms(self, api, team): team_rooms_list = list(api.rooms.list(teamId=team.id)) assert len(team_rooms_list) > 0 + assert are_valid_rooms(team_rooms_list) - def test_create_room(self, group_room): - assert isinstance(group_room, ciscosparkapi.Room) \ - and group_room.id is not None + @pytest.mark.usefixtures("direct_rooms") + def test_list_direct_rooms(self, api): + direct_rooms_list = list(api.rooms.list(type='direct')) + assert len(direct_rooms_list) > 0 + assert are_valid_rooms(direct_rooms_list) + + @pytest.mark.usefixtures("group_room", "team_room", "direct_rooms") + def test_list_all_rooms(self, rooms_list): + assert len(rooms_list) > 0 + assert are_valid_rooms(rooms_list) + + @pytest.mark.usefixtures("group_room", "team_room", "direct_rooms") + def test_list_all_rooms_with_paging(self, api, rooms_list, add_rooms): + page_size = 2 + pages = 3 + num_rooms = pages * page_size + if len(rooms_list) < num_rooms: + add_rooms(num_rooms - len(rooms_list)) + rooms = api.rooms.list(max=page_size) + rooms_list = list(itertools.islice(rooms, num_rooms)) + assert len(rooms_list) == 6 + assert are_valid_rooms(rooms_list) diff --git a/tests/test_ciscosparkapi.py b/tests/test_ciscosparkapi.py index f9a95fc..96c5ffd 100644 --- a/tests/test_ciscosparkapi.py +++ b/tests/test_ciscosparkapi.py @@ -1,4 +1,3 @@ -#!/usr/bin/env python # -*- coding: utf-8 -*- """ciscosparkapi/__init__.py Fixtures & Tests""" From aad1c7c1ec025b3183b509994a658dadf1b66285 Mon Sep 17 00:00:00 2001 From: Chris Lunsford Date: Tue, 10 Jan 2017 00:52:19 -0500 Subject: [PATCH 30/37] RoomsAPI.update() should send PUT request The RoomsAPI.update() method should be sending a PUT request (not a POST). --- ciscosparkapi/api/rooms.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ciscosparkapi/api/rooms.py b/ciscosparkapi/api/rooms.py index fd6cf11..09ff7cf 100644 --- a/ciscosparkapi/api/rooms.py +++ b/ciscosparkapi/api/rooms.py @@ -225,7 +225,7 @@ def update(self, roomId, **update_attributes): "argument must be specified." raise ciscosparkapiException(error_message) # API request - json_obj = self._session.post('rooms/' + roomId, json=update_attributes) + json_obj = self._session.put('rooms/' + roomId, json=update_attributes) # Return a Room object created from the response JSON data return Room(json_obj) From d94ce23339b6abef34b0cae36b77e221ac013af6 Mon Sep 17 00:00:00 2001 From: Chris Lunsford Date: Mon, 6 Mar 2017 01:32:57 -0500 Subject: [PATCH 31/37] #30 Correct REST verb in team_membership.update() Verb should be PUT instead of POST --- ciscosparkapi/api/teammemberships.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ciscosparkapi/api/teammemberships.py b/ciscosparkapi/api/teammemberships.py index ce026d6..5e8fdf4 100644 --- a/ciscosparkapi/api/teammemberships.py +++ b/ciscosparkapi/api/teammemberships.py @@ -236,7 +236,7 @@ def update(self, membershipId, **update_attributes): "argument must be specified." raise ciscosparkapiException(error_message) # API request - json_obj = self._session.post('team/memberships/' + membershipId, + json_obj = self._session.put('team/memberships/' + membershipId, json=update_attributes) # Return a TeamMembership object created from the response JSON data return TeamMembership(json_obj) From 2d3286e0e245da37da22d94bde84ddc90f060e95 Mon Sep 17 00:00:00 2001 From: Chris Lunsford Date: Mon, 6 Mar 2017 01:38:24 -0500 Subject: [PATCH 32/37] #20 Add people.create() and people.update() Admin methods Add people.create() and people.update() methods to wrap the new people admin API endpoints. Update the Person properties to reflect new person object attributes. Add property docstrings and have properties return `None` if not present. --- ciscosparkapi/api/people.py | 151 ++++++++++++++++++++++++++++++++++-- 1 file changed, 143 insertions(+), 8 deletions(-) diff --git a/ciscosparkapi/api/people.py b/ciscosparkapi/api/people.py index 4ad0127..e176bec 100644 --- a/ciscosparkapi/api/people.py +++ b/ciscosparkapi/api/people.py @@ -41,31 +41,69 @@ def __init__(self, json): @property def id(self): - return self._json['id'] + """The person's unique ID.""" + return self._json.get('id') @property def emails(self): + """Email address(es) of the person. + + CURRENT LIMITATION: Spark (today) only allows you to provide a single + email address for a person. The list data type was selected to enable + future support for providing multiple email address. + + """ return self._json['emails'] @property def displayName(self): - return self._json['displayName'] + """Full name of the person.""" + return self._json.get('displayName') + + @property + def firstName(self): + """First name of the person.""" + return self._json.get('firstName') + + @property + def lastName(self): + """Last name of the person.""" + return self._json.get('lastName') @property def avatar(self): - return self._json['avatar'] + """URL to the person's avatar in PNG format.""" + return self._json.get('avatar') @property - def created(self): - return self._json['created'] + def orgId(self): + """ID of the organization to which this person belongs.""" + return self._json.get('orgId') @property - def lastActivity(self): - return self._json['lastActivity'] + def roles(self): + """Roles of the person.""" + return self._json.get('roles') + + @property + def licenses(self): + """Licenses allocated to the person.""" + return self._json.get('licenses') + + @property + def created(self): + """The date and time the person was created.""" + return self._json.get('created') @property def status(self): - return self._json['status'] + """The person's current status.""" + return self._json.get('status') + + @property + def lastActivity(self): + """The date and time of the person's last activity.""" + return self._json.get('lastActivity') class PeopleAPI(object): @@ -146,6 +184,103 @@ def list(self, email=None, displayName=None, max=None): for item in items: yield Person(item) + def create(self, emails, **person_attributes): + """Create a new user account for a given organization + + Only an admin can create a new user account. + + You must specify displayName and/or firstName and lastName. + + Args: + emails(list): Email address(es) of the person. (list of strings) + CURRENT LIMITATION: Spark (today) only allows you to provide a + single email address for a person. The list data type was + selected to enable future support for providing multiple email + address. + **person_attributes: + displayName(string_types): Full name of the person + firstName(string_types): First name of the person + lastName(string_types): Last name of the person + avatar(string_types): URL to the person's avatar in PNG format + orgId(string_types): ID of the organization to which this + person belongs + roles(list): Roles of the person (list of strings containing + the role IDs to be assigned to the person) + licenses(list): Licenses allocated to the person (list of + strings containing the license IDs to be allocated to the + person) + + Returns: + Person: With the details of the created person. + + Raises: + AssertionError: If the parameter types are incorrect. + ciscosparkapiException: If required parameters have been omitted. + SparkApiError: If the Cisco Spark cloud returns an error. + + """ + # Process args + assert isinstance(emails, string_types) and len(emails) == 1 + post_data = {} + post_data['emails'] = emails + post_data.update(person_attributes) + + # API request + json_obj = self._session.post('people', json=post_data) + + # Return a Room object created from the returned JSON object + return Person(json_obj) + + def update(self, personId, **person_attributes): + """Update details for a person, by ID. + + Only an admin can update a person details. + + Args: + personId(string_types): The ID of the person to be updated. + **person_attributes: + emails(list): Email address(es) of the person. (list of + strings) CURRENT LIMITATION: Spark (today) only allows you + to provide a single email address for a person. The list + data type was selected to enable future support for + providing multiple email address. + displayName(string_types): Full name of the person + firstName(string_types): First name of the person + lastName(string_types): Last name of the person + avatar(string_types): URL to the person's avatar in PNG format + orgId(string_types): ID of the organization to which this + person belongs + roles(list): Roles of the person (list of strings containing + the role IDs to be assigned to the person) + licenses(list): Licenses allocated to the person (list of + strings containing the license IDs to be allocated to the + person) + + Returns: + Person: With the updated person details. + + Raises: + AssertionError: If the parameter types are incorrect. + ciscosparkapiException: If an update attribute is not provided. + SparkApiError: If the Cisco Spark cloud returns an error. + + """ + # Process args + assert isinstance(personId, string_types) + + # Process update_attributes keyword arguments + if not person_attributes: + error_message = "At least one **update_attributes keyword " \ + "argument must be specified." + raise ciscosparkapiException(error_message) + + # API request + json_obj = self._session.put('people/' + personId, + json=person_attributes) + + # Return a Person object created from the returned JSON object + return Person(json_obj) + def get(self, personId): """Get person details, by personId. From efe3eff1f6701eb3f418eb85895f1ae92c13fb2c Mon Sep 17 00:00:00 2001 From: Chris Lunsford Date: Mon, 6 Mar 2017 01:48:59 -0500 Subject: [PATCH 33/37] #20 Add Organizations Admin API Wrapper Add a wrapper for the new Organizations API endpoints. --- ciscosparkapi/api/organizations.py | 139 +++++++++++++++++++++++++++++ 1 file changed, 139 insertions(+) create mode 100644 ciscosparkapi/api/organizations.py diff --git a/ciscosparkapi/api/organizations.py b/ciscosparkapi/api/organizations.py new file mode 100644 index 0000000..103c120 --- /dev/null +++ b/ciscosparkapi/api/organizations.py @@ -0,0 +1,139 @@ +# -*- coding: utf-8 -*- +"""Cisco Spark Organizations API wrapper. + +Classes: + Organization: Models a Spark Organization JSON object as a native Python + object. + OrganizationsAPI: Wraps the Cisco Spark Organizations API and exposes the + API calls as Python method calls that return native Python objects. + +""" + + +from builtins import object +from six import string_types + +from ciscosparkapi.utils import generator_container +from ciscosparkapi.restsession import RestSession +from ciscosparkapi.sparkdata import SparkData + + +__author__ = "Chris Lunsford" +__author_email__ = "chrlunsf@cisco.com" +__copyright__ = "Copyright (c) 2016 Cisco Systems, Inc." +__license__ = "MIT" + + +class Organization(SparkData): + """Model a Spark Organization JSON object as a native Python object.""" + + def __init__(self, json): + """Init a new Organization data object from a dict or JSON string. + + Args: + json(dict, string_types): Input JSON object. + + Raises: + TypeError: If the input object is not a dictionary or string. + + """ + super(Organization, self).__init__(json) + + @property + def id(self): + """The unique id for the Organization.""" + return self._json.get('id') + + @property + def displayName(self): + """The human-friendly display name of the Organization.""" + return self._json.get('displayName') + + @property + def created(self): + """The date and time the Organization was created.""" + return self._json.get('created') + + +class OrganizationsAPI(object): + """Cisco Spark Organizations API wrapper. + + Wraps the Cisco Spark Organizations API and exposes the API calls as Python + method calls that return native Python objects. + + """ + + def __init__(self, session): + """Init a new OrganizationsAPI object with the provided RestSession. + + Args: + session(RestSession): The RESTful session object to be used for + API calls to the Cisco Spark service. + + Raises: + AssertionError: If the parameter types are incorrect. + + """ + assert isinstance(session, RestSession) + super(OrganizationsAPI, self).__init__() + self._session = session + + @generator_container + def list(self, max=None): + """List Organizations. + + This method supports Cisco Spark's implementation of RFC5988 Web + Linking to provide pagination support. It returns a generator + container that incrementally yields all objects returned by the + query. The generator will automatically request additional 'pages' of + responses from Spark as needed until all responses have been returned. + The container makes the generator safe for reuse. A new API call will + be made, using the same parameters that were specified when the + generator was created, every time a new iterator is requested from the + container. + + Args: + max(int): Limits the maximum number of entries returned from the + Spark service per request (page size; requesting additional + pages is handled automatically). + + Returns: + GeneratorContainer: When iterated, the GeneratorContainer, yields + the objects returned from the Cisco Spark query. + + Raises: + AssertionError: If the parameter types are incorrect. + SparkApiError: If the Cisco Spark cloud returns an error. + + """ + # Process args + assert max is None or isinstance(max, int) + params = {} + if max: + params['max'] = max + # API request - get items + items = self._session.get_items('organizations', params=params) + # Yield Organization objects created from the returned JSON objects + for item in items: + yield Organization(item) + + def get(self, orgId): + """Get the details of an Organization, by id. + + Args: + orgId(string_types): The id of the Organization. + + Returns: + Organization: With the details of the requested Organization. + + Raises: + AssertionError: If the parameter types are incorrect. + SparkApiError: If the Cisco Spark cloud returns an error. + + """ + # Process args + assert isinstance(orgId, string_types) + # API request + json_obj = self._session.get('organizations/' + orgId) + # Return a Organization object created from the returned JSON object + return Organization(json_obj) From 8389ba9beaaa93e2fce4001b86d994d49c30385e Mon Sep 17 00:00:00 2001 From: Chris Lunsford Date: Mon, 6 Mar 2017 01:49:43 -0500 Subject: [PATCH 34/37] #20 Add Licenses Admin API Wrapper Add a wrapper for the new Licenses API endpoints. --- ciscosparkapi/api/licenses.py | 151 ++++++++++++++++++++++++++++++++++ 1 file changed, 151 insertions(+) create mode 100644 ciscosparkapi/api/licenses.py diff --git a/ciscosparkapi/api/licenses.py b/ciscosparkapi/api/licenses.py new file mode 100644 index 0000000..45cf035 --- /dev/null +++ b/ciscosparkapi/api/licenses.py @@ -0,0 +1,151 @@ +# -*- coding: utf-8 -*- +"""Cisco Spark Licenses API wrapper. + +Classes: + License: Models a Spark License JSON object as a native Python object. + LicensesAPI: Wraps the Cisco Spark Licenses API and exposes the + API calls as Python method calls that return native Python objects. + +""" + + +from builtins import object +from six import string_types + +from ciscosparkapi.utils import generator_container +from ciscosparkapi.restsession import RestSession +from ciscosparkapi.sparkdata import SparkData + + +__author__ = "Chris Lunsford" +__author_email__ = "chrlunsf@cisco.com" +__copyright__ = "Copyright (c) 2016 Cisco Systems, Inc." +__license__ = "MIT" + + +class License(SparkData): + """Model a Spark License JSON object as a native Python object.""" + + def __init__(self, json): + """Init a new License data object from a dict or JSON string. + + Args: + json(dict, string_types): Input JSON object. + + Raises: + TypeError: If the input object is not a dictionary or string. + + """ + super(License, self).__init__(json) + + @property + def id(self): + """The unique id for the License.""" + return self._json.get('id') + + @property + def name(self): + """The name of the License.""" + return self._json.get('name') + + @property + def totalUnits(self): + """The total number of license units.""" + return self._json.get('totalUnits') + + @property + def consumedUnits(self): + """The total number of license units consumed.""" + return self._json.get('consumedUnits') + + +class LicensesAPI(object): + """Cisco Spark Licenses API wrapper. + + Wraps the Cisco Spark Licenses API and exposes the API calls as Python + method calls that return native Python objects. + + """ + + def __init__(self, session): + """Init a new LicensesAPI object with the provided RestSession. + + Args: + session(RestSession): The RESTful session object to be used for + API calls to the Cisco Spark service. + + Raises: + AssertionError: If the parameter types are incorrect. + + """ + assert isinstance(session, RestSession) + super(LicensesAPI, self).__init__() + self._session = session + + @generator_container + def list(self, orgId=None, max=None): + """List Licenses. + + Optionally filtered by Organization (orgId parameter). + + This method supports Cisco Spark's implementation of RFC5988 Web + Linking to provide pagination support. It returns a generator + container that incrementally yields all objects returned by the + query. The generator will automatically request additional 'pages' of + responses from Spark as needed until all responses have been returned. + The container makes the generator safe for reuse. A new API call will + be made, using the same parameters that were specified when the + generator was created, every time a new iterator is requested from the + container. + + Args: + orgId(string_types): Filters the returned licenses to only include + those liceses associated with the specified Organization + (orgId). + max(int): Limits the maximum number of entries returned from the + Spark service per request (page size; requesting additional + pages is handled automatically). + + Returns: + GeneratorContainer: When iterated, the GeneratorContainer, yields + the objects returned from the Cisco Spark query. + + Raises: + AssertionError: If the parameter types are incorrect. + SparkApiError: If the Cisco Spark cloud returns an error. + + """ + # Process args + assert orgId is None or isinstance(orgId, string_types) + assert max is None or isinstance(max, int) + params = {} + if orgId: + params['orgId'] = orgId + if max: + params['max'] = max + # API request - get items + items = self._session.get_items('licenses', params=params) + # Yield License objects created from the returned JSON objects + for item in items: + yield License(item) + + def get(self, licenseId): + """Get the details of a License, by id. + + Args: + licenseId(string_types): The id of the License. + + Returns: + License: With the details of the requested License. + + Raises: + AssertionError: If the parameter types are incorrect. + SparkApiError: If the Cisco Spark cloud returns an error. + + """ + # Process args + assert isinstance(licenseId, string_types) + # API request + json_obj = self._session.get('licenses/' + licenseId) + # Return a License object created from the returned JSON object + return License(json_obj) From f209423b2271895d717aece52d372e6d38f0cd71 Mon Sep 17 00:00:00 2001 From: Chris Lunsford Date: Mon, 6 Mar 2017 01:50:40 -0500 Subject: [PATCH 35/37] #20 Add Roles Admin API Wrapper Add a wrapper for the new Roles API endpoints. --- ciscosparkapi/api/roles.py | 133 +++++++++++++++++++++++++++++++++++++ 1 file changed, 133 insertions(+) create mode 100644 ciscosparkapi/api/roles.py diff --git a/ciscosparkapi/api/roles.py b/ciscosparkapi/api/roles.py new file mode 100644 index 0000000..e8846b6 --- /dev/null +++ b/ciscosparkapi/api/roles.py @@ -0,0 +1,133 @@ +# -*- coding: utf-8 -*- +"""Cisco Spark Roles API wrapper. + +Classes: + Role: Models a Spark Role JSON object as a native Python object. + RolesAPI: Wraps the Cisco Spark Roles API and exposes the + API calls as Python method calls that return native Python objects. + +""" + + +from builtins import object +from six import string_types + +from ciscosparkapi.utils import generator_container +from ciscosparkapi.restsession import RestSession +from ciscosparkapi.sparkdata import SparkData + + +__author__ = "Chris Lunsford" +__author_email__ = "chrlunsf@cisco.com" +__copyright__ = "Copyright (c) 2016 Cisco Systems, Inc." +__role__ = "MIT" + + +class Role(SparkData): + """Model a Spark Role JSON object as a native Python object.""" + + def __init__(self, json): + """Init a new Role data object from a dict or JSON string. + + Args: + json(dict, string_types): Input JSON object. + + Raises: + TypeError: If the input object is not a dictionary or string. + + """ + super(Role, self).__init__(json) + + @property + def id(self): + """The unique id for the Role.""" + return self._json.get('id') + + @property + def name(self): + """The name of the Role.""" + return self._json.get('name') + + +class RolesAPI(object): + """Cisco Spark Roles API wrapper. + + Wraps the Cisco Spark Roles API and exposes the API calls as Python + method calls that return native Python objects. + + """ + + def __init__(self, session): + """Init a new RolesAPI object with the provided RestSession. + + Args: + session(RestSession): The RESTful session object to be used for + API calls to the Cisco Spark service. + + Raises: + AssertionError: If the parameter types are incorrect. + + """ + assert isinstance(session, RestSession) + super(RolesAPI, self).__init__() + self._session = session + + @generator_container + def list(self, max=None): + """List Roles. + + This method supports Cisco Spark's implementation of RFC5988 Web + Linking to provide pagination support. It returns a generator + container that incrementally yields all objects returned by the + query. The generator will automatically request additional 'pages' of + responses from Spark as needed until all responses have been returned. + The container makes the generator safe for reuse. A new API call will + be made, using the same parameters that were specified when the + generator was created, every time a new iterator is requested from the + container. + + Args: + max(int): Limits the maximum number of entries returned from the + Spark service per request (page size; requesting additional + pages is handled automatically). + + Returns: + GeneratorContainer: When iterated, the GeneratorContainer, yields + the objects returned from the Cisco Spark query. + + Raises: + AssertionError: If the parameter types are incorrect. + SparkApiError: If the Cisco Spark cloud returns an error. + + """ + # Process args + assert max is None or isinstance(max, int) + params = {} + if max: + params['max'] = max + # API request - get items + items = self._session.get_items('roles', params=params) + # Yield Role objects created from the returned JSON objects + for item in items: + yield Role(item) + + def get(self, roleId): + """Get the details of a Role, by id. + + Args: + roleId(string_types): The id of the Role. + + Returns: + Role: With the details of the requested Role. + + Raises: + AssertionError: If the parameter types are incorrect. + SparkApiError: If the Cisco Spark cloud returns an error. + + """ + # Process args + assert isinstance(roleId, string_types) + # API request + json_obj = self._session.get('roles/' + roleId) + # Return a Role object created from the returned JSON object + return Role(json_obj) From 680e1a9ecd4b84b59d1efdc57d3aedca88a65e82 Mon Sep 17 00:00:00 2001 From: Chris Lunsford Date: Mon, 6 Mar 2017 01:52:27 -0500 Subject: [PATCH 36/37] #20 Add the new Admin API wrappers to CiscoSparkAPI Add the new Organizations, Licenses and Roles API wrappers to the CiscoSparkAPI class. --- ciscosparkapi/__init__.py | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/ciscosparkapi/__init__.py b/ciscosparkapi/__init__.py index 557b5c2..3536fb1 100644 --- a/ciscosparkapi/__init__.py +++ b/ciscosparkapi/__init__.py @@ -10,7 +10,6 @@ from .exceptions import ciscosparkapiException, SparkApiError from .restsession import RestSession -from .api.accesstokens import AccessToken, AccessTokensAPI from .api.people import Person, PeopleAPI from .api.rooms import Room, RoomsAPI from .api.memberships import Membership, MembershipsAPI @@ -18,6 +17,10 @@ from .api.teams import Team, TeamsAPI from .api.teammemberships import TeamMembership, TeamMembershipsAPI from .api.webhooks import Webhook, WebhooksAPI +from .api.organizations import Organization, OrganizationsAPI +from .api.licenses import License, LicensesAPI +from .api.roles import Role, RolesAPI +from .api.accesstokens import AccessToken, AccessTokensAPI __author__ = "Chris Lunsford" @@ -61,6 +64,12 @@ class CiscoSparkAPI(object): :class:`webhooks ` + :class:`organizations ` + + :class:`licenses ` + + :class:`roles ` + :class:`access_tokens ` """ @@ -129,6 +138,9 @@ def __init__(self, access_token=None, base_url=DEFAULT_BASE_URL, self.teams = TeamsAPI(self._session) self.team_memberships = TeamMembershipsAPI(self._session) self.webhooks = WebhooksAPI(self._session) + self.organizations = OrganizationsAPI(self._session) + self.licenses = LicensesAPI(self._session) + self.roles = RolesAPI(self._session) self.access_tokens = AccessTokensAPI(self.base_url, timeout=timeout) @property From c3a2b6712d213cb41b1134ddb9f45c0456a2f1fc Mon Sep 17 00:00:00 2001 From: Chris Lunsford Date: Mon, 6 Mar 2017 01:53:22 -0500 Subject: [PATCH 37/37] Correct REST verb in memberships.update() Verb should be PUT instead of POST --- ciscosparkapi/api/memberships.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/ciscosparkapi/api/memberships.py b/ciscosparkapi/api/memberships.py index 7e3e854..f552261 100644 --- a/ciscosparkapi/api/memberships.py +++ b/ciscosparkapi/api/memberships.py @@ -260,8 +260,8 @@ def update(self, membershipId, **update_attributes): "argument must be specified." raise ciscosparkapiException(error_message) # API request - json_obj = self._session.post('memberships/' + membershipId, - json=update_attributes) + json_obj = self._session.put('memberships/' + membershipId, + json=update_attributes) # Return a Membership object created from the response JSON data return Membership(json_obj)

M~h5n5R~UG{+KYcW#$z1@+yK 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