diff --git a/pages/index.vue b/pages/index.vue index eaeaba9..6eed51c 100644 --- a/pages/index.vue +++ b/pages/index.vue @@ -13,9 +13,9 @@ const store = reactive({ await store.category.fetchBySiteId() const { data } = await useAsyncData('index', () => store.dynamicPage.fetchPageByCode(route.path === '/' ? 'trang-chu' : route.path.replace('/', ''))) -const asycnCurrentPage = data.value.currentPage; -const asycnSectionPublished = data.value.sectionPublished; -const asycnComponentPublished = data.value.componentPublished; +const asycnCurrentPage = data.value && data.value.currentPage; +const asycnSectionPublished = data.value && data.value.sectionPublished; +const asycnComponentPublished = data.value && data.value.componentPublished; useHead({ title: () => 'Trang chá»§', diff --git a/server/models/articles/index.ts b/server/models/articles/index.ts index abec9b6..bdb00f5 100644 --- a/server/models/articles/index.ts +++ b/server/models/articles/index.ts @@ -63,9 +63,10 @@ export const getArticleById = async (event : any) => { try { const { apiUrl } = useRuntimeConfig().public const id = event.context.params.id; + const query = getQuery(event) const { item }: any = await $fetch(`${apiUrl}/cms/digital-article/${id}`, { headers: new Headers({ - site: '1' || 1, + site: getSite(query.site).toString(), }), }) @@ -79,9 +80,10 @@ export const getArticleBySlug = async (event : any) => { try { const { apiUrl } = useRuntimeConfig().public const slug = event.context.params.slug; + const query = getQuery(event) const { item }: any = await $fetch(`${apiUrl}/cms/digital-article/slug:${slug}`, { headers: new Headers({ - site: '1' || 1, + site: getSite(query.site).toString(), }), }) return { item } @@ -93,17 +95,17 @@ export const getArticleBySlug = async (event : any) => { export const listArticleCondition = async (event: H3Event) => { try { const payload = await readBody(event) - const { apiUrl } = useRuntimeConfig().public + const { apiUrl } = useRuntimeConfig().public; + const query = getQuery(event) const { items }: any = await $fetch(`${apiUrl}/cms/article/condition`, { method: "POST", headers: new Headers({ - site: '1' || 1, + site: getSite(query.site).toString(), }), body: { payload } }) - // log(event) return items } catch (error) { diff --git a/server/models/author.ts b/server/models/author.ts index 8280af4..7afb00f 100644 --- a/server/models/author.ts +++ b/server/models/author.ts @@ -17,12 +17,13 @@ export type Author = { export const fetchByCode = async (event: H3Event) => { try { const { apiUrl } = useRuntimeConfig().public - const { authorCode }: any = getQuery(event) + const { authorCode }: any = getQuery(event); + const query = getQuery(event) const { items }: any = await $fetch(`${apiUrl}/cms/author/code:${authorCode}`, { method: 'GET', - headers: { - site: 1 - } + headers: new Headers({ + site: getSite(query.site).toString(), + }), }) return items[0] } catch (error) { diff --git a/server/models/category.ts b/server/models/category.ts index aecc5a9..cccebbf 100644 --- a/server/models/category.ts +++ b/server/models/category.ts @@ -28,15 +28,15 @@ export type CategoryTree = Category & { children?: Category[] } -export const list = async () => { +export const list = async (event : H3Event) => { try { const { site, apiUrl } = useRuntimeConfig().public; - + const query = getQuery(event) const { items }: CategoryTree[] | any = await $fetch(`${apiUrl}/cms/category/tree/site:1`, { method: "GET", - headers: { - site: 1, - }, + headers: new Headers({ + site: getSite(query.site).toString(), + }), }); return { items } ; } catch (error) { diff --git a/server/models/dynamic-page/index.ts b/server/models/dynamic-page/index.ts index c11079a..30f83f9 100644 --- a/server/models/dynamic-page/index.ts +++ b/server/models/dynamic-page/index.ts @@ -101,11 +101,13 @@ export const getDynamicPageByCode = async (event: any) => { try { const { apiUrl } = useRuntimeConfig().public const slug = event.context.params.slug; + const query = getQuery(event) const { item }: any = await $fetch(`${apiUrl}/cms/page/overview-page/slug:${slug}`, { headers: new Headers({ - site: '1' || 1, - }), + site: getSite(query.site).toString(), + }), }) + console.log(getSite(query.site)) return item } catch (error) { handleError(error); @@ -116,7 +118,12 @@ export const getDynamicPageById = async (event: any) => { try { const { apiUrl } = useRuntimeConfig().public const id = event.context.params.id; - const { item }: any = await $fetch(`${apiUrl}/cms/overview-page/${id}`) + const query = getQuery(event) + const { item }: any = await $fetch(`${apiUrl}/cms/overview-page/${id}`, { + headers: new Headers({ + site: getSite(query.site).toString(), + }), + }) return item } catch (error) { handleError(error); @@ -126,10 +133,12 @@ export async function getOverviewPageComponentById(event: any) { try { const { apiUrl } = useRuntimeConfig().public const { componentId, dataQuery } = getQuery(event) + const query = getQuery(event) return await $fetch(`${apiUrl}/cms/overview-page-component/${componentId}`, { method: "POST", headers: { "Content-Type": "application/json", + site: getSite(query.site).toString(), }, body: dataQuery, }); diff --git a/server/models/event.ts b/server/models/event.ts index b5336b3..97d6f5d 100644 --- a/server/models/event.ts +++ b/server/models/event.ts @@ -21,11 +21,12 @@ export const fetchByCode = async(event: H3Event) => { try { const { apiUrl } = useRuntimeConfig().public const { eventCode }: any = getQuery(event) + const query = getQuery(event) const { item }: any = await $fetch(`${apiUrl}/cms/event/code:${eventCode}`, { method: 'GET', - headers: { - Site: 1 - } + headers: new Headers({ + site: getSite(query.site).toString(), + }), }) return item } catch (error) { @@ -37,11 +38,12 @@ export const fetchById = async(event: H3Event) => { try { const { apiUrl } = useRuntimeConfig().public const { eventId }: any = getQuery(event) + const query = getQuery(event); const { item }: any = await $fetch(`${apiUrl}/cms/event/${eventId}`, { method: 'GET', - headers: { - Site: 1 - } + headers: new Headers({ + site: getSite(query.site).toString(), + }), }) return item } catch (error) { diff --git a/server/utils/getSite.ts b/server/utils/getSite.ts new file mode 100644 index 0000000..70b9b0e --- /dev/null +++ b/server/utils/getSite.ts @@ -0,0 +1,16 @@ +export const getSite = (dns : any) => { + const SITE = { + DEFAULT: 1, + KINHTEDOTHI: 'kinhtedothi', + } + let site = null; + switch (dns) { + case SITE.KINHTEDOTHI: + site = 2; + break; + default: + site = 1; + break; + } + return site; +} \ No newline at end of file diff --git a/stores/articles.ts b/stores/articles.ts index 9d60927..0427e48 100644 --- a/stores/articles.ts +++ b/stores/articles.ts @@ -5,9 +5,16 @@ export const useArticleStore = defineStore("article", () => { const currentArticle = ref({}); const currentArticles = ref([]) + const url : any = useRequestURL(); + const host = url.hostname.split('.')[0]; + const getArticleById = async (id: string | number) => { try { - const { data } = await useFetch(`/api/articles/get-by-id/${id}`) + const { data } = await useFetch(`/api/articles/get-by-id/${id}`, { + query: { + site: host + } + }) currentArticle.value = {} currentArticle.value = data.value.item } catch (error: any) { } @@ -15,7 +22,11 @@ export const useArticleStore = defineStore("article", () => { const getArticleBySlug = async (slug: string) => { try { - const article = await $fetch(`/api/articles/get-by-slug/${slug}`) + const article = await $fetch(`/api/articles/get-by-slug/${slug}`, { + query: { + site: host + } + }) currentArticle.value = {} currentArticle.value = article?.item @@ -27,7 +38,10 @@ export const useArticleStore = defineStore("article", () => { try { const { data: articles } = await useFetch(`/api/articles/condition`, { method: 'POST', - body: condition + body: condition, + query: { + site: host + } }) } catch (error: any) { diff --git a/stores/dynamic-page.ts b/stores/dynamic-page.ts index 1511ebc..3459727 100644 --- a/stores/dynamic-page.ts +++ b/stores/dynamic-page.ts @@ -1,10 +1,14 @@ import { defineStore, acceptHMRUpdate } from "pinia"; import { useLocalStorage } from "@vueuse/core"; + export const useDynamicPageStore = defineStore("dynamicPageStore", () => { const currentPage = ref({}); const sectionPublished = ref([]); const componentPublished = ref([]); + const url : any = useRequestURL(); + const host = url.hostname.split('.')[0]; + const setSectionPublished = () => { const exsitsTemplate = ['None'] const contentArr: any = []; @@ -45,7 +49,11 @@ export const useDynamicPageStore = defineStore("dynamicPageStore", () => { async function fetchPageByCode(slug: any) { try { - const page = await $fetch(`/api/dynamic-page/get-by-code/${slug}`) + const page = await $fetch(`/api/dynamic-page/get-by-code/${slug}`, { + query: { + site: host + } + }) currentPage.value = {} currentPage.value = page @@ -60,7 +68,7 @@ export const useDynamicPageStore = defineStore("dynamicPageStore", () => { } catch (error: any) {} } - async function getOverviewPageComponentById(componentId, dataQuery) { + async function getOverviewPageComponentById(componentId: any, dataQuery: any) { try { const { apiUrl } = useRuntimeConfig().public const res = await $fetch(`${apiUrl}/cms/page-component/overview-page-component/${componentId}`, {