diff options
author | Artur Malabarba <bruce.connor.am@gmail.com> | 2015-02-27 00:58:40 -0300 |
---|---|---|
committer | Artur Malabarba <bruce.connor.am@gmail.com> | 2015-02-27 00:58:40 -0300 |
commit | a6763f4257829e65b7602f0965a19a7efc310442 (patch) | |
tree | 233b3e990e48824782f82bfcd493d3e44ebda119 /sx-method.el | |
parent | 1e8299a933e115c41d81f00948074085d961e47c (diff) | |
parent | aa1368c104aebf837fd7654deea8d244428616a2 (diff) |
Merge branch 'delete-command' into json-false
Diffstat (limited to 'sx-method.el')
-rw-r--r-- | sx-method.el | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/sx-method.el b/sx-method.el index 9d61e60..f2e68b3 100644 --- a/sx-method.el +++ b/sx-method.el @@ -142,6 +142,34 @@ Return the entire response as a complex alist." url-method (or get-all process-function)))) +(defun sx-method-post-from-data (data &rest keys) + "Make a POST `sx-method-call', deriving parameters from DATA. +KEYS are [KEYWORD VALUE] pairs passed to `sx-method-call', except +the following which are decided by this function: + + METHOD :site and :id are derived from DATA, where METHOD is + either \"answers\", \"comments\", or \"questions\". + :url-method is post. + :filter is `sx-browse-filter'. + :auth is warn. + +As a special exception, if KEYS is a single argument, it is +assumed to be the :submethod argument." + (declare (indent 1)) + (sx-assoc-let data + (apply #'sx-method-call + (cond (.comment_id "comments") + (.answer_id "answers") + (.question_id "questions")) + :id (or .comment_id .answer_id .question_id) + :auth 'warn + :url-method 'post + :filter sx-browse-filter + :site .site_par + (if (= 1 (length keys)) + (cons :submethod keys) + keys)))) + (provide 'sx-method) ;;; sx-method.el ends here |