diff --git a/src/lib/cache.lisp b/src/lib/cache.lisp new file mode 100644 index 0000000..6e8393e --- /dev/null +++ b/src/lib/cache.lisp @@ -0,0 +1,15 @@ +(defpackage #:website/lib/cache + (:use #:cl) + (:import-from #:function-cache + #:defcached + #:clear-cache) + (:export #:memorize + #:clear-cache)) +(in-package #:website/lib/cache) + +(defmacro memorize (name) + (let ((origin (gensym))) + `(progn + (setf (fdefinition ',origin) (fdefinition ',name)) + (defcached ,name (&rest args) + (apply #',origin args))))) diff --git a/src/lib/cms.lisp b/src/lib/cms.lisp index f374ad9..317a095 100644 --- a/src/lib/cms.lisp +++ b/src/lib/cms.lisp @@ -3,11 +3,11 @@ (:import-from #:microcms #:define-list-client #:define-object-client) - (:import-from #:function-cache - #:defcached) (:import-from #:website/lib/env #:microcms-service-domain #:microcms-api-key) + (:import-from #:website/lib/cache + #:memorize) (:export #:get-about #:get-works #:get-blog-list @@ -17,13 +17,6 @@ (setf microcms:*service-domain* (microcms-service-domain)) (setf microcms:*api-key* (microcms-api-key)) -(defmacro memorize (name) - (let ((origin (gensym))) - `(progn - (setf (fdefinition ',origin) (fdefinition ',name)) - (defcached ,name (&key query) - (,origin :query query))))) - (define-object-client about) (memorize get-about) diff --git a/src/routes/api/revalidate.lisp b/src/routes/api/revalidate.lisp index 03d4a4b..d0d1491 100644 --- a/src/routes/api/revalidate.lisp +++ b/src/routes/api/revalidate.lisp @@ -1,8 +1,6 @@ (defpackage #:website/routes/api/revalidate (:use #:cl #:jingle) - (:import-from #:function-cache - #:clear-cache) (:import-from #:website/lib/env #:microcms-webhook-key) (:import-from #:website/helper @@ -10,6 +8,8 @@ (:import-from #:website/lib/cms #:get-about #:get-works) + (:import-from #:website/lib/cache + #:clear-cache) (:export #:handle-post)) (in-package #:website/routes/api/revalidate)