branch: elpa/gnosis
commit f253157810bc33bf8ea9f5059cc2860e7fc36e08
Author: Thanos Apollo <pub...@thanosapollo.org>
Commit: Thanos Apollo <pub...@thanosapollo.org>

    Add gnosis-get-deck-id.
    
    + Return the deck-id for a given deck.
      + If deck does not exist, create it.
    + Meant to be used with saving exported decks.
---
 gnosis.el | 11 +++++++++++
 1 file changed, 11 insertions(+)

diff --git a/gnosis.el b/gnosis.el
index d88dec106f..358ea1c5f3 100644
--- a/gnosis.el
+++ b/gnosis.el
@@ -648,6 +648,17 @@ Set SPLIT to t to split all input given."
   "Return id for DECK name."
   (gnosis-get 'id 'decks `(= name ,deck)))
 
+(defun gnosis-get-deck-id (&optional deck)
+  "Return note id for DECK.
+
+If DECK does not exist, create it."
+  (cl-assert (stringp deck) nil "DECK must be a string.")
+  (let* ((deck (or deck (gnosis--get-deck-name)))
+        (deck-id (gnosis-select 'id 'decks `(= name ,deck) t)))
+    (if deck-id (car deck-id)
+      (gnosis-add-deck deck)
+      (gnosis-get-deck-id deck))))
+
 (defun gnosis-get-note-deck-name (id)
   "Return deck name of note ID."
   (let ((deck (gnosis-get 'deck-id 'notes `(= id ,id))))

Reply via email to