os-rtm.el: get and set auth token.
authorAurélien Aptel <k@b0.cx>
Thu, 9 Aug 2012 17:09:00 +0000 (19:09 +0200)
committerAurélien Aptel <k@b0.cx>
Thu, 9 Aug 2012 17:09:00 +0000 (19:09 +0200)
os-rtm.el
os.el

index f9aa51c..d239e58 100644 (file)
--- a/os-rtm.el
+++ b/os-rtm.el
@@ -36,7 +36,7 @@
 
 (defvar os-rtm-api-key "e9b28a9ac67f1bffc3dab1bd94dab722")
 (defvar os-rtm-shared-secret "caef7e509a8dcd82")
-(defvar os-rtm-frob)
+(defvar os-rtm-token)
 
 (defvar url-http-end-of-headers)
 (defvar url-http-response-status)
@@ -53,6 +53,9 @@
   (unless  (string-match "/auth/" url)
     (push '("format" . "json") param))
 
+  (when os-rtm-token
+    (push `("auth_token" . ,os-rtm-token) param))
+
   (push `("api_key" . ,os-rtm-api-key) param)
 
   (when sign
     (setq url (os-url-param "http://www.rememberthemilk.com/services/auth/" param))
     (browse-url url)
     (when (yes-or-no-p "Application accepted? ")
-      (os-rtm-call "rtm.auth.getToken" `(("frob" . ,frob))))))
+      (setq
+       os-rtm-auth
+       (os-getalist 
+        (cdr (os-rtm-call "rtm.auth.getToken" `(("frob" . ,frob)))) 
+        'rsp 'auth 'token)))))
 
 (defun os-rtm-sign (param-alist)
   "Return the signature for the PARAM-ALIST request."
diff --git a/os.el b/os.el
index da2353d..3d0d920 100644 (file)
--- a/os.el
+++ b/os.el
@@ -735,6 +735,12 @@ sync again.\n\n")
             (insert (org-element-interpret-data (os-bug-to-element b))
                     "\n")))))))
 
+(defun os-getalist (obj &rest keys)
+  "Apply assoc in nested alist OBJ with KEYS."
+  (let ((p obj))
+    (dolist (k keys p)
+      (setq p (cdr (assoc k p))))))
+
 (defun os-sync ()
   "Update buglists in current buffer."
   (interactive)