This is cl-odesk, an implementation of the oDesk API in Common Lisp.
Spec URI: http://developers.odesk.com
If you already installed cl-odesk you can load it by:
(require :odesk)
Before doing some API calls first you need to define connection. You will need PUBLIC_KEY, PRIVATE_KEY and TOKEN. The last one you can get only by authenticating yourself in your favourite web browser. Please read API Documentation at http://developers.odesk.com
You can create connection by instantiating API class:
(defparameter *test-connection* (make-instance 'odesk:api-json :public-key "PUBLIC" :secret-key "SECRET" :api-token "TOKEN"))
Here is macro that can ease your life a lot:
(with-odesk (:connection con :public-key "PUBLIC" :secret-key "SECRET" :api-token "TOKEN") (print con))
And another macro that can help too:
(connect-odesk (:public-key "PUBLIC" :secret-key "SECRET" :api-token "TOKEN"))
Now let's do request to get info about user. If you went first way and created variable test-connection:
(odesk:hr/get-user :connection *test-connection*)
If you go the second way and will use with-odesk macro. Here you have two options. The first one:
(odesk:with-odesk (:connection my-con :public-key "PUBLIC" :secret-key "SECRET" :api-token "TOKEN") (odesk:hr/get-user :connection my-con))
The second:
(odesk:with-odesk (:public-key "PUBLIC" :secret-key "SECRET" :api-token "TOKEN") (odesk:hr/get-user))
Third way is for those who want to create connection globally and then use it in the code with-out the need to use with-odesk macro:
(odesk:connect-odesk (:public-key "PUBLIC" :secret-key "SECRET" :api-token "TOKEN")) (odesk:hr/get-user)
Get Token:
auth/get-token (tested)
Get frob:
auth/get-frob (not tested)
Check token:
auth/check-token (tested)
Revoke Session:
auth/revoke-token (tested)
no support at all.
Shorten URL:
shorturl/get-shorten (tested)
Expand URL:
shorturl/get-expand (tested)
Generate Billing Reports for a Specific Provider:
no support
Generate Billing Reports for a Specific Provider's Team:
no support
Generate Billing Reports for a Specific Provider's Company:
no support
Generate Earning Reports for a Specific Provider:
no support
Generate Earning Reports for a Specific Provider's Team:
no support
Generate Earning Reports for a Specific Provider's Company:
no support
Generate Billing Reports for a Specific Buyer's Team:
no support
Generate Billing Reports for a Specific Buyer's Company:
no support
Generate Earning Reports for a Specific Buyer's Team:
no support
Generate Earning Reports for a Specific Buyer's Company:
no support
Generate Financial Reports for a Specific Account:
no support
Generate Financial Reports for an owned Account:
no support
Custom Payment:
no support
User Roles:
no support
Referenced user:
hr/get-user (tested)
Returns all jobs that a user has manage_recruiting accesss to:
no support
Get Job by reference:
no support
Post a Job:
no support
Update Job:
no support
Cancel the Job:
no support
Lists all the offers on a specific job or within a specific team:
no support
Get Offer:
no support
Return engagement(s) based on the parameters supplied in the API call:
no support
Get Engagement:
no support
Retrieve a list of all active trays and a message count for each:
mc/get-trays (tested)
Retrieve tray contents:
mc/list-tray (tested)
List thread details based on thread id:
no support
Update threads based on user actions:
no support
Send a message to a user:
no support
Generate Monthly oDesk job market report:
no support
Generate Hours worked by location report:
no support
Generate oConomy weekly growth report:
no support
Generate Top countries by hours worked for last 30 days report:
no support
Generate Earnings by category report:
no support
Generate Monthly most requested skills report:
no support
User Information:
hr/get-myself (tested)
Company Information:
hr/get-companies (tested)
hr/get-company (not tested)
hr/get-company-teams (tested)
hr/get-company-users (not tested)
Team Information:
hr/get-teams (tested)
hr/get-team-users (not tested)
Provider Information:
profiles/get-provider (tested)
profiles/get-provider-brief (tested)
Searching Jobs:
profiles/get-jobs (tested)
Searching Providers:
profiles/get-providers (tested)
Get Snapshot:
no support
Update Snapshot Memo:
no support
Delete Snapshot:
no support
List all Tasks within a Company, Team or User:
no support
List all oTask records within a Company, Team or User:
no support
Return a specific task record within a company, team or user:
no support
Create an oTask record within a company, team or user:
no support
Update an oTask record within a company, team or user:
no support
Delete an oTask record within a company, team or user:
no support
Delete All oTask records within a company, team or user:
no support
Update a group of oTask records within a company, team or user:
no support
Get Team Rooms:
team/get-teamrooms (tested)
Get Team Room:
team/get-teamroom (tested)
Get Work Diary:
team/get-workdiary (tested)
Generate Time Reports for a Specific Team:
timereports/get-team (tested)
Generating Company Wide Reports:
timereports/get-company (tested)
Generating Agency Specific Reports:
timereports/get-agency (tested)
Generating Provider Specific Reports:
timereports/get-provider (tested)