summaryrefslogtreecommitdiff
path: root/src/pages/sitemap
diff options
context:
space:
mode:
authorRafi Zadanly <zadanlyr@gmail.com>2023-04-08 10:12:31 +0700
committerRafi Zadanly <zadanlyr@gmail.com>2023-04-08 10:12:31 +0700
commit0ca62faf89775496320025c170c942b2cb3e1a20 (patch)
tree4107119c58e82aedf3478c165741824ff9cd08c1 /src/pages/sitemap
parente7383ff9601e47953c732fccf093e19993ec37cd (diff)
update theme color
Diffstat (limited to 'src/pages/sitemap')
-rw-r--r--src/pages/sitemap/products.xml.js30
-rw-r--r--src/pages/sitemap/products/[id].xml.js32
2 files changed, 62 insertions, 0 deletions
diff --git a/src/pages/sitemap/products.xml.js b/src/pages/sitemap/products.xml.js
new file mode 100644
index 00000000..e5fc8029
--- /dev/null
+++ b/src/pages/sitemap/products.xml.js
@@ -0,0 +1,30 @@
+import productSearchApi from '@/lib/product/api/productSearchApi'
+import { create } from 'xmlbuilder'
+import _ from 'lodash-contrib'
+
+export async function getServerSideProps({ res }) {
+ const baseUrl = process.env.SELF_HOST + '/sitemap/products'
+ const limit = 2500
+ const query = { limit }
+ const products = await productSearchApi({ query: _.toQuery(query) })
+ const pageCount = Math.ceil(products.response.numFound / limit)
+ const pages = Array.from({ length: pageCount }, (_, i) => i + 1)
+ const sitemapIndex = create('sitemapindex', { encoding: 'UTF-8' })
+
+ const date = new Date()
+ pages.forEach((page) => {
+ const sitemap = sitemapIndex.ele('sitemap')
+ sitemap.ele('loc', `${baseUrl}/${page}.xml`)
+ sitemap.ele('lastmod', date.toISOString().slice(0, 10))
+ })
+
+ res.setHeader('Content-Type', 'text/xml')
+ res.write(sitemapIndex.end())
+ res.end()
+
+ return { props: {} }
+}
+
+export default function SitemapProducts() {
+ return null
+}
diff --git a/src/pages/sitemap/products/[id].xml.js b/src/pages/sitemap/products/[id].xml.js
new file mode 100644
index 00000000..e9caaa00
--- /dev/null
+++ b/src/pages/sitemap/products/[id].xml.js
@@ -0,0 +1,32 @@
+import productSearchApi from '@/lib/product/api/productSearchApi'
+import { create } from 'xmlbuilder'
+import _ from 'lodash-contrib'
+import { createSlug } from '@/core/utils/slug'
+
+export async function getServerSideProps({ res }) {
+ const baseUrl = process.env.SELF_HOST + '/shop/product'
+ const limit = 2500
+ const query = { limit }
+ const products = await productSearchApi({ query: _.toQuery(query) })
+ console.log(products);
+ // const sitemap = create('urlset', { encoding: 'UTF-8' })
+
+ // const date = new Date()
+ // pages.forEach((page) => {
+ // const url = sitemap.ele('url')
+ // url.ele('loc', createSlug(baseUrl, '', ''))
+ // url.ele('lastmod', date.toISOString().slice(0, 10))
+ // url.ele('changefreq', 'weekly')
+ // url.ele('priority', '0.8')
+ // })
+
+ // res.setHeader('Content-Type', 'text/xml')
+ // res.write(sitemap.end())
+ // res.end()
+
+ return { props: {} }
+}
+
+export default function SitemapProducts() {
+ return <></>
+}