From 1b0b98ec7d3a2acb13ff792d33765a2d1a0a9a3b Mon Sep 17 00:00:00 2001 From: Griffin Smith Date: Wed, 26 Sep 2018 11:41:33 -0400 Subject: feat: Create org-mode headlines from query Merges in a function which has existed in my local setup for a while now to run a query to Clubhouse and create all the results as org headlines at a specified level --- org-clubhouse.el | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) (limited to 'org-clubhouse.el') diff --git a/org-clubhouse.el b/org-clubhouse.el index 67fec58a443f..33539e2c98f9 100644 --- a/org-clubhouse.el +++ b/org-clubhouse.el @@ -728,6 +728,37 @@ allows manually passing a clubhouse ID and list of org-element plists to write" (message "Successfully updated clubhouse status to \"%s\"" clubhouse-workflow-state))))) + +(defun org-clubhouse-headlines-from-query (level query) + "Create `org-mode' headlines from a clubhouse query. + +Submits QUERY to clubhouse, and creates `org-mode' headlines from all the +resulting stories at headline level LEVEL." + (interactive + "*nLevel: \nMQuery: ") + (let* ((sprint-stories + (org-clubhouse-request + "GET" + "search/stories" + :params '((query query)))) + (sprint-story-list (-> sprint-stories cdr car cdr (append nil)))) + (save-mark-and-excursion + (insert + (mapconcat (lambda (story) + (format + "%s TODO %s +:PROPERTIES: +:clubhouse-id: %s +:END: +" + (make-string level ?*) + (alist-get 'name story) + (let ((story-id (alist-get 'id story))) + (org-make-link-string + (org-clubhouse-link-to-story story-id) + (number-to-string story-id))))) + (reject-archived sprint-story-list) "\n"))))) + (define-minor-mode org-clubhouse-mode :init-value nil :group 'org -- cgit 1.4.1