From 919119d649347158958d14873ce50c69e6967eb0 Mon Sep 17 00:00:00 2001 From: Helmut Merz Date: Fri, 9 Aug 2024 18:50:34 +0200 Subject: [PATCH] storage/folder: + parent query --- storage/folder.lisp | 11 ++++++++--- test/test-storage.lisp | 2 ++ 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/storage/folder.lisp b/storage/folder.lisp index fbacf5f..8fb2bd3 100644 --- a/storage/folder.lisp +++ b/storage/folder.lisp @@ -5,7 +5,7 @@ (:local-nicknames (:shape :scopes/shape) (:tracking :scopes/storage/tracking) (:util :scopes/util)) - (:export #:folder #:root #:create #:items + (:export #:folder #:root #:create #:items #:parent #:make-container)) (in-package :scopes/storage/folder) @@ -34,8 +34,13 @@ (pid (tracking:id-str parent))) (tracking:save (tracking:make-item cont pid name)))) -(defun items (parent) - (query parent `((:parentid ,(id parent))))) +(defun items (f) + (query f `((:parentid ,(id f))))) + +(defun parent (f) + (let ((pid (parse-integer (util:keyword-to-string (shape:head-value f :parentid))))) + (tracking:query-one (tracking:container f) + (tracking:make-where `((:trackid ,pid)))))) ;;;; auxiliary functions diff --git a/test/test-storage.lisp b/test/test-storage.lisp index 6941e34..c78151d 100644 --- a/test/test-storage.lisp +++ b/test/test-storage.lisp @@ -100,4 +100,6 @@ (setf r1 (folder:items root)) (== (length r1) 1) (== (shape:head-value (car r1) :ref) :dummy-0) + (setf f2 (folder:parent (car r1))) + (== (tracking:trackid f2) 1) ))