Giter VIP home page Giter VIP logo

deskapi-1's Introduction

Desk API

Build Status

Test Coverage

deskapi is a Python wrapper around the Desk.com REST API. It provides Python wrappers for articles, topics, and translations. deskapi is compatible with Python 2.6, 2.7, and 3.3.

Installation

deskapi is installable from PyPI with easy_install or pip.

$ pip install deskapi

This will download the latest release, along with requests, which it depends on.

Getting Started

Access to the Desk API is managed through a DeskSession object. To instantiate a session, you'll need a sitename and authentication information. If your Desk.com site is http://example.desk.com, your site name will be example. Authentication information is any valid Requests auth object. The simplest thing to provide is a username and password. For example:

>>> from deskapi.models import DeskApi2

>>> session = DeskApi2(
...     sitename='testing',
...     auth=('[email protected]', '53kr17')
... )

Once you have a session ID, you can retrieve a list of Articles:

>>> articles = session.articles()

Article fields map to Python properties:

>>> article = articles[0]
>>> str(article.subject)
'Subject 1'
>>> article.in_support_center
True

Collections and Objects

deskapi models the information available from Desk API as a set of "collections" and "objects". The articles() method on DeskSesssion returns a collection. Collections can be iterated over, and support indexed access. A collection can create new members in itself.

Each member of a collection is a Desk Object. Desk Objects support property access to their fields, as well as updating those fields.

Collections

Creating Members

You can create new members of a collection by calling the create method on it, passing in fields as keyword arguments.

>>> new_article = articles.create(
...     title='New Article',
...     body='Some content.',
... )

Articles

Articles are accessible via the articles() method on the DeskSession.

>>> articles = session.articles()

Topics

Topics are accessible via the topics() method on the DeskSession.

Translations

Translations are accessible via the translations property of Article objects. The translations collection is slightly different than other collections. Instead of allowing indexed access, it acts like a dict, keyed by locale:

>>> translations = article.translations
>>> len(translations)
2
>>> str(translations['es'].subject)
'Tema de Ayuda'

Objects

Updating Objects

You can make changes to an object and save those back to Desk. Calling .save() will return the saved instance.

>>> article.body = 'Test Content'
>>> article.save()  # doctest: +ELLIPSIS
<deskapi.models.DeskObject object at ...>

Alternately you can use the update method to update the information in Desk without updating the local Python object. The following is equivalent to the save example:

>>> article = article.update(body='Test Content')

Both save and update return the updated object.

License

Made available under a BSD license; see LICENSE for details.

deskapi-1's People

Contributors

nyergler avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.