From 0ca62faf89775496320025c170c942b2cb3e1a20 Mon Sep 17 00:00:00 2001 From: Rafi Zadanly Date: Sat, 8 Apr 2023 10:12:31 +0700 Subject: update theme color --- src/pages/sitemap/products.xml.js | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) create mode 100644 src/pages/sitemap/products.xml.js (limited to 'src/pages/sitemap/products.xml.js') 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 +} -- cgit v1.2.3