aboutsummaryrefslogtreecommitdiff
path: root/sx-method.el
diff options
context:
space:
mode:
Diffstat (limited to 'sx-method.el')
-rw-r--r--sx-method.el76
1 files changed, 38 insertions, 38 deletions
diff --git a/sx-method.el b/sx-method.el
index ee1f0b2..a1a2901 100644
--- a/sx-method.el
+++ b/sx-method.el
@@ -39,7 +39,7 @@
auth
(url-method "GET")
site)
- "Call METHOD with additional keys.
+ "Call METHOD with additional keys.
:ID is the id associated with a question, answer, comment, post or
user.
@@ -63,46 +63,46 @@ but could still be used without authenticating (i.e a launch/home page).
When AUTH is 'warn, methods will signal a `user-error'. This is meant
for interactive commands that absolutely require authentication
-(submitting questions/answers, reading inbox, etc). Filters will
+ (submitting questions/answers, reading inbox, etc). Filters will
treat 'warn as equivalent to t.
Return the entire response as a complex alist."
- (let ((access-token (sx-cache-get 'auth))
- (method-auth (sx-auth--method-p method submethod))
- (filter-auth (sx-auth--filter-p filter))
- (full-method (concat (format "%s" method)
- (when id
- (format "/%s" id))
- (when submethod
- (format "/%s" submethod))))
- (call 'sx-request-make))
- (lwarn "sx-call-method" :debug "A: %S T: %S. M: %S,%s. F: %S" (equal 'warn auth)
- access-token method-auth full-method filter-auth)
- (unless access-token
- (cond
- ;; 1. Need auth and warn user (interactive use)
- ((and method-auth (equal 'warn auth))
- (user-error
- "This request requires authentication. Please run `M-x sx-auth-authenticate' and try again."))
- ;; 2. Need auth to populate UI, cannot provide subset
- ((and method-auth auth)
- (setq call 'sx-request-fallback))
- ;; 3. Need auth for type. Use auth-less filter.
- ((and filter-auth auth)
- (setq filter filter-auth))
- ;; 4. Requires auth but no value set for auth
- ((and (or filter-auth method-auth) (not auth))
- (error "This request requires authentication."))))
- ;; Concatenate all parameters now that filter is ensured.
- (setq parameters
- (cons `(site . ,site)
- (cons (cons 'filter
- (sx-filter-get-var filter))
- keywords)))
- (funcall call
- full-method
- parameters
- url-method)))
+ (let ((access-token (sx-cache-get 'auth))
+ (method-auth (sx-auth--method-p method submethod))
+ (filter-auth (sx-auth--filter-p filter))
+ (full-method (concat (format "%s" method)
+ (when id
+ (format "/%s" id))
+ (when submethod
+ (format "/%s" submethod))))
+ (call 'sx-request-make))
+ (lwarn "sx-call-method" :debug "A: %S T: %S. M: %S,%s. F: %S" (equal 'warn auth)
+ access-token method-auth full-method filter-auth)
+ (unless access-token
+ (cond
+ ;; 1. Need auth and warn user (interactive use)
+ ((and method-auth (equal 'warn auth))
+ (user-error
+ "This request requires authentication. Please run `M-x sx-auth-authenticate' and try again."))
+ ;; 2. Need auth to populate UI, cannot provide subset
+ ((and method-auth auth)
+ (setq call 'sx-request-fallback))
+ ;; 3. Need auth for type. Use auth-less filter.
+ ((and filter-auth auth)
+ (setq filter filter-auth))
+ ;; 4. Requires auth but no value set for auth
+ ((and (or filter-auth method-auth) (not auth))
+ (error "This request requires authentication."))))
+ ;; Concatenate all parameters now that filter is ensured.
+ (setq parameters
+ (cons `(site . ,site)
+ (cons (cons 'filter
+ (sx-filter-get-var filter))
+ keywords)))
+ (funcall call
+ full-method
+ parameters
+ url-method)))
(provide 'sx-method)
;;; sx-method.el ends here