From 1d606fe88f97f87e32a58b1b187a71f40c70169c Mon Sep 17 00:00:00 2001 From: Rafi Zadanly Date: Wed, 29 Mar 2023 14:29:29 +0700 Subject: blog detail --- src/lib/blog/api/blogApi.js | 8 ++++++++ src/lib/blog/api/blogsApi.js | 8 ++++++++ src/lib/blog/hooks/useBlog.js | 11 +++++++++++ src/lib/blog/hooks/useBlogs.js | 13 +++++++++++++ 4 files changed, 40 insertions(+) create mode 100644 src/lib/blog/api/blogApi.js create mode 100644 src/lib/blog/api/blogsApi.js create mode 100644 src/lib/blog/hooks/useBlog.js create mode 100644 src/lib/blog/hooks/useBlogs.js (limited to 'src/lib/blog') diff --git a/src/lib/blog/api/blogApi.js b/src/lib/blog/api/blogApi.js new file mode 100644 index 00000000..e38c9cd5 --- /dev/null +++ b/src/lib/blog/api/blogApi.js @@ -0,0 +1,8 @@ +import odooApi from '@/core/api/odooApi' + +const blogApi = async ({ id }) => { + const dataBlog = await odooApi('GET', `/api/v1/blog/${id}`) + return dataBlog +} + +export default blogApi diff --git a/src/lib/blog/api/blogsApi.js b/src/lib/blog/api/blogsApi.js new file mode 100644 index 00000000..8943c61e --- /dev/null +++ b/src/lib/blog/api/blogsApi.js @@ -0,0 +1,8 @@ +import odooApi from '@/core/api/odooApi' + +const blogsApi = async ({ limit, offset }) => { + const dataBlogs = await odooApi('GET', `/api/v1/blog?limit=${limit}&offset=${offset}`) + return dataBlogs +} + +export default blogsApi diff --git a/src/lib/blog/hooks/useBlog.js b/src/lib/blog/hooks/useBlog.js new file mode 100644 index 00000000..bc01be7f --- /dev/null +++ b/src/lib/blog/hooks/useBlog.js @@ -0,0 +1,11 @@ +import { useQuery } from 'react-query' +import blogApi from '../api/blogApi' + +const useBlog = ({ id }) => { + const fetchBlog = async () => await blogApi({ id }) + const blog = useQuery(`blog-${id}`, fetchBlog) + + return { blog } +} + +export default useBlog diff --git a/src/lib/blog/hooks/useBlogs.js b/src/lib/blog/hooks/useBlogs.js new file mode 100644 index 00000000..edcea020 --- /dev/null +++ b/src/lib/blog/hooks/useBlogs.js @@ -0,0 +1,13 @@ +import { useQuery } from 'react-query' +import blogsApi from '../api/blogsApi' + +const useBlogs = ({ limit, offset }) => { + const fetchBlogs = async () => await blogsApi({ limit, offset }) + const blogs = useQuery(`blogs-${limit}-${offset}`, fetchBlogs, { + refetchOnWindowFocus: false + }) + + return { blogs } +} + +export default useBlogs -- cgit v1.2.3