diff --git a/storage/tracking.lisp b/storage/tracking.lisp index 430efc8..f9d5a6e 100644 --- a/storage/tracking.lisp +++ b/storage/tracking.lisp @@ -41,6 +41,10 @@ (setf hv (cdr hv))) pl)) +(defun ensure-timestamp (track) + (if (not (time-stamp track)) + (setf (time-stamp track) (get-universal-time)))) + (defun proplist (track) (let ((vl (head-proplist track))) (with-slots ((trid trackid) (ts time-stamp) data) track @@ -51,15 +55,15 @@ vl)) (defun insert (track) + (ensure-timestamp track) (let* ((cont (container track)) (st (storage cont)) (table (storage:qualified-table-name st (table-name cont))) (res (car (storage:query st (sxql:insert-into table (apply #'sxql:make-clause ':set= (proplist track)) - (sxql:returning :trackid :timestamp)))))) + (sxql:returning :trackid)))))) (setf (trackid track) (cadr res)) - (setf (time-stamp track) (cadddr res)) track)) (defun create-table (cont) diff --git a/test/test-storage.lisp b/test/test-storage.lisp index d304f66..0b4643c 100644 --- a/test/test-storage.lisp +++ b/test/test-storage.lisp @@ -43,11 +43,9 @@ (storage:drop-table st :tracks) (tracking:create-table cont) (setf tr (tracking:make-item cont "t01" "john")) - (setf (tracking:time-stamp tr) (get-universal-time)) (== (tracking:head tr) '("t01" "john")) (== (tracking:head-proplist tr) '(:username "john" :taskid "t01")) (== (tracking:data tr) nil) (tracking:insert tr) (== (tracking:trackid tr) 1) - (print (local-time:universal-to-timestamp (tracking:time-stamp tr))) ))