Salesforce.com owns a terrific task management/project management Web app called Do.com. This online collaboration tool helps reduce email volume, provides visibility into the workflow of other team members, provides real-time notification and activity feeds of project progress, and more.
Do.com’s REST API
Recently Do.com began beta testing a REST API that allows developers to interact with Do.com from within other applications. Like most API’s, there are a number of properties and headers that must be set with each call. These properties and headers ensure things like user authentications and access. Because of this, API’s are often cumbersome to use “raw” — that is, by generating a unique url string and generating a HTTP request with headers by hand for every request.
While the RESTful nature of modern API’s like Do.com’s API makes development easier, a language-specific wrapper can make using the API more language idiomatic and natural. Dobedobedo is just that, an idiomatic Ruby wrapper for the Do.com REST API.
Specifically, Dobedobedo provides two pieces of functionality:
- It translates idiomatic calls for create, read, update and delete (CRUD) into appropriate URL paths with proper id’s, properties, and headers for all standard objects such as Task, Comments, Notes, etc.
- Since all responses from the Do.com API are returned in JSON format, Dobedobedo takes care of deserializing the responses from JSON into Ruby objects with relevant methods. For example, a request for Tasks within a project returns an array of Task objects, each with their own update, save, and delete methods.
Dobedobedo works by establishing a secure connection via OAuth2 and dynamically defines “model” objects that reflect Do.com workspaces, projects, tasks, comments, etc. For example, when a request is made to create a new Do.com object, say a task, the Do.com API returns a “blank” object that defines fields and infers types but contains no data (except for that which you pass in as optional fields to the create call). In this way, Dobedobedo can create “model” objects that are always dynamically defined by Do.com API responses making Dobedobedo some measure of future-proof against Do.com field name changes, additions and deletions.
Dobedobedo: Watch and Learn
This video demonstrates a command line Ruby application using Dobedobedo to view, create and delete/mark done tasks in a Do.com workspace.
Developers interested in integrating Do.com with their Ruby based projects can find more details about the gem here.