diff options
author | Yoni Rabkin <yrk@gnu.org> | 2014-12-11 15:38:50 -0500 |
---|---|---|
committer | Yoni Rabkin <yrk@gnu.org> | 2014-12-11 15:38:50 -0500 |
commit | f67581bea9216b8d0b624de3673c718073b9d6b6 (patch) | |
tree | 09667d3069dd014e3955426ed2e0c092836c1bb4 | |
parent | 6e75dbbea883784029ca20e9ca0f65de6a17445c (diff) |
Implement and start using REST show query.
At this point the most basic functionality of rt-liberation, that of
listing tickets in response to a query, is using the REST interface.
-rw-r--r-- | rt-liberation-rest.el | 24 | ||||
-rw-r--r-- | rt-liberation.el | 2 |
2 files changed, 19 insertions, 7 deletions
diff --git a/rt-liberation-rest.el b/rt-liberation-rest.el index a13b039..2121aba 100644 --- a/rt-liberation-rest.el +++ b/rt-liberation-rest.el @@ -108,7 +108,6 @@ (defun rt-liber-rest-query-runner (op query-string) "Run OP on QUERY-STRING." - (message "starting REST '%s' query at %s..." op (current-time-string)) (when (or (not (stringp op)) (not (stringp query-string))) (error "bad arguments")) @@ -157,6 +156,16 @@ (rt-liber-rest-query-runner "ls" query) 'rt-liber-rest-ticketsql-runner-parser-f)) +(defun rt-liber-rest-show-process (response) + "Process and return the show query response." + (when (not (stringp response)) + (error "argument not a string")) + (with-temp-buffer + (save-excursion + (insert response)) + (rt-liber-rest-parse-http-header) + (buffer-substring (point) (point-max)))) + (defun rt-liber-rest-show-query-runner (idsublist) "Iterate over IDSUBLIST and return the collected result." (when (not (listp idsublist)) @@ -172,15 +181,18 @@ (setq c (1+ c))) (insert - (rt-liber-rest-query-runner "show" (caar ticket-ids))) - (setq ticket-ids (cdr ticket-ids)))) + (rt-liber-rest-show-process + (rt-liber-rest-query-runner "show" (caar ticket-ids)))) + (setq ticket-ids (cdr ticket-ids)) + (when ticket-ids + (insert "\n--\n")))) (buffer-substring (point-min) (point-max)))) (defun rt-liber-rest-run-show-base-query (idsublist) "Run \"show\" type query against the server with IDSUBLIST." - ;;(rt-liber-parse-answer - (rt-liber-rest-show-query-runner idsublist)) -;;#'rt-liber-ticket-base-retriever-parser-f)) + (rt-liber-parse-answer + (rt-liber-rest-show-query-runner idsublist) + #'rt-liber-ticket-base-retriever-parser-f)) (provide 'rt-liberation-rest) diff --git a/rt-liberation.el b/rt-liberation.el index 532e034..c7a3a33 100644 --- a/rt-liberation.el +++ b/rt-liberation.el @@ -1077,7 +1077,7 @@ string then that will be the name of the new buffer." (interactive "Mquery: ") (condition-case excep (rt-liber-browser-startup - (rt-liber-run-show-base-query + (rt-liber-rest-run-show-base-query (rt-liber-rest-run-ls-query query)) query new) (rt-liber-no-result-from-query-error |