Add cache library
This commit is contained in:
parent
fdad470f0e
commit
b67a0ef527
3 changed files with 19 additions and 11 deletions
src
15
src/lib/cache.lisp
Normal file
15
src/lib/cache.lisp
Normal file
|
@ -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)))))
|
|
@ -3,11 +3,11 @@
|
||||||
(:import-from #:microcms
|
(:import-from #:microcms
|
||||||
#:define-list-client
|
#:define-list-client
|
||||||
#:define-object-client)
|
#:define-object-client)
|
||||||
(:import-from #:function-cache
|
|
||||||
#:defcached)
|
|
||||||
(:import-from #:website/lib/env
|
(:import-from #:website/lib/env
|
||||||
#:microcms-service-domain
|
#:microcms-service-domain
|
||||||
#:microcms-api-key)
|
#:microcms-api-key)
|
||||||
|
(:import-from #:website/lib/cache
|
||||||
|
#:memorize)
|
||||||
(:export #:get-about
|
(:export #:get-about
|
||||||
#:get-works
|
#:get-works
|
||||||
#:get-blog-list
|
#:get-blog-list
|
||||||
|
@ -17,13 +17,6 @@
|
||||||
(setf microcms:*service-domain* (microcms-service-domain))
|
(setf microcms:*service-domain* (microcms-service-domain))
|
||||||
(setf microcms:*api-key* (microcms-api-key))
|
(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)
|
(define-object-client about)
|
||||||
(memorize get-about)
|
(memorize get-about)
|
||||||
|
|
||||||
|
|
|
@ -1,8 +1,6 @@
|
||||||
(defpackage #:website/routes/api/revalidate
|
(defpackage #:website/routes/api/revalidate
|
||||||
(:use #:cl
|
(:use #:cl
|
||||||
#:jingle)
|
#:jingle)
|
||||||
(:import-from #:function-cache
|
|
||||||
#:clear-cache)
|
|
||||||
(:import-from #:website/lib/env
|
(:import-from #:website/lib/env
|
||||||
#:microcms-webhook-key)
|
#:microcms-webhook-key)
|
||||||
(:import-from #:website/helper
|
(:import-from #:website/helper
|
||||||
|
@ -10,6 +8,8 @@
|
||||||
(:import-from #:website/lib/cms
|
(:import-from #:website/lib/cms
|
||||||
#:get-about
|
#:get-about
|
||||||
#:get-works)
|
#:get-works)
|
||||||
|
(:import-from #:website/lib/cache
|
||||||
|
#:clear-cache)
|
||||||
(:export #:handle-post))
|
(:export #:handle-post))
|
||||||
(in-package #:website/routes/api/revalidate)
|
(in-package #:website/routes/api/revalidate)
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue