From c9366090153e8aba3a673b2b77cbc8acc24e59a5 Mon Sep 17 00:00:00 2001 From: Rafi Zadanly Date: Fri, 15 Dec 2023 17:15:32 +0700 Subject: Update promotion program feature --- src/pages/api/product-variant/[id].js | 2 ++ src/pages/api/product-variant/[id]/promotion/highlight.js | 2 ++ 2 files changed, 4 insertions(+) create mode 100644 src/pages/api/product-variant/[id].js create mode 100644 src/pages/api/product-variant/[id]/promotion/highlight.js (limited to 'src/pages/api') diff --git a/src/pages/api/product-variant/[id].js b/src/pages/api/product-variant/[id].js new file mode 100644 index 00000000..4186a724 --- /dev/null +++ b/src/pages/api/product-variant/[id].js @@ -0,0 +1,2 @@ +import handler from '~/pages/api/product-variant/[id]'; +export default handler; diff --git a/src/pages/api/product-variant/[id]/promotion/highlight.js b/src/pages/api/product-variant/[id]/promotion/highlight.js new file mode 100644 index 00000000..93b1e781 --- /dev/null +++ b/src/pages/api/product-variant/[id]/promotion/highlight.js @@ -0,0 +1,2 @@ +import handler from '~/pages/api/product-variant/[id]/promotion/highlight'; +export default handler; \ No newline at end of file -- cgit v1.2.3 From 89f32128f37d99b490de7590e2116a9cfd853f89 Mon Sep 17 00:00:00 2001 From: Rafi Zadanly Date: Fri, 22 Dec 2023 17:33:46 +0700 Subject: Update promotion program feature --- src/pages/api/product-variant/[id]/promotion/[category].js | 2 ++ src/pages/api/promotion-program/[id].js | 2 ++ 2 files changed, 4 insertions(+) create mode 100644 src/pages/api/product-variant/[id]/promotion/[category].js create mode 100644 src/pages/api/promotion-program/[id].js (limited to 'src/pages/api') diff --git a/src/pages/api/product-variant/[id]/promotion/[category].js b/src/pages/api/product-variant/[id]/promotion/[category].js new file mode 100644 index 00000000..aef03c22 --- /dev/null +++ b/src/pages/api/product-variant/[id]/promotion/[category].js @@ -0,0 +1,2 @@ +import handler from '~/pages/api/product-variant/[id]/promotion/[category]'; +export default handler; diff --git a/src/pages/api/promotion-program/[id].js b/src/pages/api/promotion-program/[id].js new file mode 100644 index 00000000..f2bb550e --- /dev/null +++ b/src/pages/api/promotion-program/[id].js @@ -0,0 +1,2 @@ +import handler from '~/pages/api/promotion-program/[id]'; +export default handler; -- cgit v1.2.3 From fb80b92d502437160e45b237b380071ab102c838 Mon Sep 17 00:00:00 2001 From: Rafi Zadanly Date: Mon, 22 Jan 2024 10:41:53 +0700 Subject: Update disable checkout when has product price 0 and fix filter brand --- src/pages/api/shop/brands.js | 50 +++++++++++++++++++++++--------------------- 1 file changed, 26 insertions(+), 24 deletions(-) (limited to 'src/pages/api') diff --git a/src/pages/api/shop/brands.js b/src/pages/api/shop/brands.js index dbbfcfe3..1217aa48 100644 --- a/src/pages/api/shop/brands.js +++ b/src/pages/api/shop/brands.js @@ -1,36 +1,38 @@ -import axios from 'axios' +import axios from 'axios'; + +const SOLR_HOST = process.env.SOLR_HOST; export default async function handler(req, res) { try { - let params = '*:*' - let sort = 'sort=if(exists(sequence_i),0,1) asc,sequence_i asc, if(exists(image_s),0,1) asc ' - let rows = 2000 + let params = '*:*'; + let sort = + 'sort=if(exists(sequence_i),0,1) asc,sequence_i asc, if(exists(image_s),0,1) asc '; + let rows = 2000; if (req.query.params) { - rows = 100 + rows = 100; switch (req?.query?.params) { case 'level_s': - params = 'level_s:prioritas' - break + params = 'level_s:prioritas'; + break; case 'search': - params = `name_s:${req?.query?.q.toLowerCase()}` - sort = '' - rows = 1 + params = `name_s:${req?.query?.q.toLowerCase()}`; + sort = ''; + rows = 1; break; default: - params = `name_s:${req.query.params}` + params = `name_s:${req.query.params}`.toLowerCase(); } } - let brands = await axios( - process.env.SOLR_HOST + - `/solr/brands/select?q=${params}&q.op=OR&indent=true&rows=${rows}&${sort}` - ) - let dataBrands = responseMap(brands.data.response.docs) + const url = `${SOLR_HOST}/solr/brands/select?q=${params}&q.op=OR&indent=true&rows=${rows}&${sort}`; + console.log(url); + let brands = await axios(url); + let dataBrands = responseMap(brands.data.response.docs); - res.status(200).json(dataBrands) + res.status(200).json(dataBrands); } catch (error) { - console.error('Error fetching data from Solr:', error) - res.status(500).json({ error: 'Internal Server Error' }) + console.error('Error fetching data from Solr:', error); + res.status(500).json({ error: 'Internal Server Error' }); } } @@ -40,9 +42,9 @@ const responseMap = (brands) => { id: brand.id, name: brand.display_name_s, logo: brand.image_s || '', - sequance: brand.sequence_i || '' - } + sequance: brand.sequence_i || '', + }; - return brandMapping - }) -} + return brandMapping; + }); +}; -- cgit v1.2.3 From 4b1ce96ca59bd5d11fc17573f7dfa56ac50cb191 Mon Sep 17 00:00:00 2001 From: Rafi Zadanly Date: Mon, 22 Jan 2024 10:46:09 +0700 Subject: Remove log in brand api --- src/pages/api/shop/brands.js | 1 - 1 file changed, 1 deletion(-) (limited to 'src/pages/api') diff --git a/src/pages/api/shop/brands.js b/src/pages/api/shop/brands.js index 1217aa48..8c608b5e 100644 --- a/src/pages/api/shop/brands.js +++ b/src/pages/api/shop/brands.js @@ -25,7 +25,6 @@ export default async function handler(req, res) { } } const url = `${SOLR_HOST}/solr/brands/select?q=${params}&q.op=OR&indent=true&rows=${rows}&${sort}`; - console.log(url); let brands = await axios(url); let dataBrands = responseMap(brands.data.response.docs); -- cgit v1.2.3 From fb3be45e5246e588628723b3d4c0f901c8b260a2 Mon Sep 17 00:00:00 2001 From: Rafi Zadanly Date: Thu, 25 Jan 2024 15:30:58 +0700 Subject: Update ready stock sort by sold qty --- src/pages/api/shop/search.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'src/pages/api') diff --git a/src/pages/api/shop/search.js b/src/pages/api/shop/search.js index 576d028a..adb23511 100644 --- a/src/pages/api/shop/search.js +++ b/src/pages/api/shop/search.js @@ -32,7 +32,7 @@ export default async function handler(req, res) { paramOrderBy += 'search_rank_weekly_i DESC' break case 'stock': - paramOrderBy += 'stock_total_f DESC' + paramOrderBy += 'product_rating_f DESC, stock_total_f DESC' break case 'flashsale-price-asc': paramOrderBy += 'flashsale_price_f ASC' -- cgit v1.2.3 From 6a4592828aef751d40877e828ffc89780cbfd04d Mon Sep 17 00:00:00 2001 From: Rafi Zadanly Date: Fri, 26 Jan 2024 16:41:29 +0700 Subject: Fix brand search api --- src/pages/api/shop/brands.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'src/pages/api') diff --git a/src/pages/api/shop/brands.js b/src/pages/api/shop/brands.js index 8c608b5e..cc64a7e7 100644 --- a/src/pages/api/shop/brands.js +++ b/src/pages/api/shop/brands.js @@ -16,7 +16,7 @@ export default async function handler(req, res) { params = 'level_s:prioritas'; break; case 'search': - params = `name_s:${req?.query?.q.toLowerCase()}`; + params = `name_s:"${req?.query?.q.toLowerCase()}"`; sort = ''; rows = 1; break; -- cgit v1.2.3 From 7892008931b6c2e4c0f220212aa51b489d79dc86 Mon Sep 17 00:00:00 2001 From: "HATEC\\SPVDEV001" Date: Thu, 7 Mar 2024 14:51:12 +0700 Subject: add information product in page variant detail --- src/pages/api/shop/variant-detail.js | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) (limited to 'src/pages/api') diff --git a/src/pages/api/shop/variant-detail.js b/src/pages/api/shop/variant-detail.js index fadbe000..08ce75b8 100644 --- a/src/pages/api/shop/variant-detail.js +++ b/src/pages/api/shop/variant-detail.js @@ -8,7 +8,10 @@ export default async function handler(req, res) { `/solr/variants/select?q=id:${req.query.id}&q.op=OR&indent=true` ) let auth = req.query.auth === 'false' ? JSON.parse(req.query.auth) : req.query.auth - let result = variantsMappingSolr('',productVariants.data.response.docs, auth || false) + let productTemplate = await axios( + process.env.SOLR_HOST + `/solr/product/select?q=id:${req.query.id}&q.op=OR&indent=true` + ) + let result = variantsMappingSolr(productTemplate.data.response.docs, productVariants.data.response.docs, auth || false) res.status(200).json(result) } catch (error) { -- cgit v1.2.3 From 60497cfbdf29df106d3d4270bfd480f270f16098 Mon Sep 17 00:00:00 2001 From: "HATEC\\SPVDEV001" Date: Mon, 25 Mar 2024 16:52:42 +0700 Subject: generate recomendation --- src/pages/api/shop/generate-recomendation.js | 60 ++++++++++++++++++++++++++++ 1 file changed, 60 insertions(+) create mode 100644 src/pages/api/shop/generate-recomendation.js (limited to 'src/pages/api') diff --git a/src/pages/api/shop/generate-recomendation.js b/src/pages/api/shop/generate-recomendation.js new file mode 100644 index 00000000..a2a9ee40 --- /dev/null +++ b/src/pages/api/shop/generate-recomendation.js @@ -0,0 +1,60 @@ +import { productMappingSolr } from '@/utils/solrMapping' +import axios from 'axios'; +import camelcaseObjectDeep from 'camelcase-object-deep'; + +export default async function handler(req, res) { + const { q = null } = req.query + + if (!q) { + return res.status(422).json({ error: 'parameter missing' }) + } + + let parameter = [ + `q=${escapeSolrQuery(q)}`, + `q.op=AND`, + `indent=true`, + `fq=-publish_b:false`, + `qf=name_s^2 description_s`, + `facetch=true`, + `fq=price_tier1_v2_f:[1 TO *]`, + `rows=1`, + `sort=product_rating_f DESC, price_discount_f DESC`, + ]; + let result = await axios( + process.env.SOLR_HOST + '/solr/product/select?' + parameter.join('&') + ); + try { + let { auth } = req.cookies; + if (auth) auth = JSON.parse(auth); + result.data.response.products = productMappingSolr( + result.data.response.docs, + auth?.pricelist || false + ); + result.data.responseHeader.params.start = parseInt( + result.data.responseHeader.params.start + ); + result.data.responseHeader.params.rows = parseInt( + result.data.responseHeader.params.rows + ); + delete result.data.response.docs; + result.data = camelcaseObjectDeep(result.data); + res.status(200).json(result.data); + } catch (error) { + res.status(400).json({ error: error.message }); + } +} + +const escapeSolrQuery = (query) => { + if (query == '*') return query; + + const specialChars = /([\+\-\!\(\)\{\}\[\]\^"~\*\?:\\\/])/g; + const words = query.split(/\s+/); + const escapedWords = words.map((word) => { + if (specialChars.test(word)) { + return `"${word.replace(specialChars, '\\$1')}"`; + } + return word; + }); + + return escapedWords.join(' '); +}; -- cgit v1.2.3 From 1da58744fde2ef65a5cf24c8bf5d7d933c6d510b Mon Sep 17 00:00:00 2001 From: Rafi Zadanly Date: Fri, 5 Apr 2024 09:08:28 +0700 Subject: Add feature search only ready stock product --- src/pages/api/shop/search.js | 118 ++++++++++++++++++++++++++----------------- 1 file changed, 71 insertions(+), 47 deletions(-) (limited to 'src/pages/api') diff --git a/src/pages/api/shop/search.js b/src/pages/api/shop/search.js index adb23511..10575d37 100644 --- a/src/pages/api/shop/search.js +++ b/src/pages/api/shop/search.js @@ -1,6 +1,6 @@ -import { productMappingSolr } from '@/utils/solrMapping' -import axios from 'axios' -import camelcaseObjectDeep from 'camelcase-object-deep' +import { productMappingSolr } from '@/utils/solrMapping'; +import axios from 'axios'; +import camelcaseObjectDeep from 'camelcase-object-deep'; export default async function handler(req, res) { const { @@ -14,35 +14,36 @@ export default async function handler(req, res) { operation = 'AND', fq = '', limit = 30, - stock = '' - } = req.query + } = req.query; - let paramOrderBy = '' + let { stock = '' } = req.query; + + let paramOrderBy = ''; switch (orderBy) { case 'price-asc': - paramOrderBy += 'price_tier1_v2_f ASC' - break + paramOrderBy += 'price_tier1_v2_f ASC'; + break; case 'price-desc': - paramOrderBy += 'price_tier1_v2_f DESC' - break + paramOrderBy += 'price_tier1_v2_f DESC'; + break; case 'popular': - paramOrderBy += 'product_rating_f DESC, search_rank_i DESC,' - break + paramOrderBy += 'product_rating_f DESC, search_rank_i DESC,'; + break; case 'popular-weekly': - paramOrderBy += 'search_rank_weekly_i DESC' - break + paramOrderBy += 'search_rank_weekly_i DESC'; + break; case 'stock': - paramOrderBy += 'product_rating_f DESC, stock_total_f DESC' - break + paramOrderBy += 'product_rating_f DESC, stock_total_f DESC'; + break; case 'flashsale-price-asc': - paramOrderBy += 'flashsale_price_f ASC' - break + paramOrderBy += 'flashsale_price_f ASC'; + break; default: - paramOrderBy += 'product_rating_f DESC, price_discount_f DESC' - break + paramOrderBy += 'product_rating_f DESC, price_discount_f DESC'; + break; } - let offset = (page - 1) * limit + let offset = (page - 1) * limit; let parameter = [ 'facet.field=manufacture_name_s', 'facet.field=category_name', @@ -55,59 +56,82 @@ export default async function handler(req, res) { `start=${parseInt(offset)}`, `rows=${limit}`, `sort=${paramOrderBy}`, - `fq=-publish_b:false` - ] + `fq=-publish_b:false`, + ]; if (priceFrom > 0 || priceTo > 0) { parameter.push( `fq=price_tier1_v2_f:[${priceFrom == '' ? '*' : priceFrom} TO ${ priceTo == '' ? '*' : priceTo }]` - ) + ); + } + + let { auth } = req.cookies; + if (auth) { + auth = JSON.parse(auth); + if (auth.feature.onlyReadyStock) stock = true; } - if (brand) parameter.push(`fq=${brand.split(',').map(manufacturer => `manufacture_name:"${manufacturer}"`).join(" OR ")}`) - if (category) parameter.push(`fq=${category.split(',').map(cat => `category_name:"${cat}"`).join(' OR ')}`) + if (brand) + parameter.push( + `fq=${brand + .split(',') + .map((manufacturer) => `manufacture_name:"${manufacturer}"`) + .join(' OR ')}` + ); + if (category) + parameter.push( + `fq=${category + .split(',') + .map((cat) => `category_name:"${cat}"`) + .join(' OR ')}` + ); // if (category) parameter.push(`fq=category_name:${capitalizeFirstLetter(category.replace(/,/g, ' OR '))}`) - if (stock) parameter.push(`fq=stock_total_f:{1 TO *}`) + if (stock) parameter.push(`fq=stock_total_f:{1 TO *}`); // Single fq in url params - if (typeof fq === 'string') parameter.push(`fq=${fq}`) + if (typeof fq === 'string') parameter.push(`fq=${fq}`); // Multi fq in url params - if (Array.isArray(fq)) parameter = parameter.concat(fq.map((val) => `fq=${val}`)) + if (Array.isArray(fq)) + parameter = parameter.concat(fq.map((val) => `fq=${val}`)); - let result = await axios(process.env.SOLR_HOST + '/solr/product/select?' + parameter.join('&')) + let result = await axios( + process.env.SOLR_HOST + '/solr/product/select?' + parameter.join('&') + ); try { - let { auth } = req.cookies - if (auth) auth = JSON.parse(auth) result.data.response.products = productMappingSolr( result.data.response.docs, auth?.pricelist || false - ) - result.data.responseHeader.params.start = parseInt(result.data.responseHeader.params.start) - result.data.responseHeader.params.rows = parseInt(result.data.responseHeader.params.rows) - delete result.data.response.docs - result.data = camelcaseObjectDeep(result.data) - res.status(200).json(result.data) + ); + result.data.responseHeader.params.start = parseInt( + result.data.responseHeader.params.start + ); + result.data.responseHeader.params.rows = parseInt( + result.data.responseHeader.params.rows + ); + delete result.data.response.docs; + result.data = camelcaseObjectDeep(result.data); + res.status(200).json(result.data); } catch (error) { - res.status(400).json({ error: error.message }) + res.status(400).json({ error: error.message }); } } const escapeSolrQuery = (query) => { - if (query == '*') return query + if (query == '*') return query; - const specialChars = /([\+\-\!\(\)\{\}\[\]\^"~\*\?:\\\/])/g - const words = query.split(/\s+/) + const specialChars = /([\+\-\!\(\)\{\}\[\]\^"~\*\?:\\\/])/g; + const words = query.split(/\s+/); const escapedWords = words.map((word) => { if (specialChars.test(word)) { - return `"${word.replace(specialChars, '\\$1')}"` + return `"${word.replace(specialChars, '\\$1')}"`; } - return word - }) + return word; + }); - return escapedWords.join(' ') -} + return escapedWords.join(' '); +}; /*const productResponseMap = (products, pricelist) => { return products.map((product) => { -- cgit v1.2.3 From b7def06cf32bf86036056718ece2350b4da72d23 Mon Sep 17 00:00:00 2001 From: "HATEC\\SPVDEV001" Date: Fri, 5 Apr 2024 15:43:24 +0700 Subject: recomendation --- src/pages/api/shop/generate-recomendation.js | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'src/pages/api') diff --git a/src/pages/api/shop/generate-recomendation.js b/src/pages/api/shop/generate-recomendation.js index a2a9ee40..11dd153e 100644 --- a/src/pages/api/shop/generate-recomendation.js +++ b/src/pages/api/shop/generate-recomendation.js @@ -3,7 +3,7 @@ import axios from 'axios'; import camelcaseObjectDeep from 'camelcase-object-deep'; export default async function handler(req, res) { - const { q = null } = req.query + const { q = null, op = 'AND' } = req.query if (!q) { return res.status(422).json({ error: 'parameter missing' }) @@ -11,13 +11,13 @@ export default async function handler(req, res) { let parameter = [ `q=${escapeSolrQuery(q)}`, - `q.op=AND`, + `q.op=${op}`, `indent=true`, `fq=-publish_b:false`, `qf=name_s^2 description_s`, `facetch=true`, `fq=price_tier1_v2_f:[1 TO *]`, - `rows=1`, + `rows=10`, `sort=product_rating_f DESC, price_discount_f DESC`, ]; let result = await axios( -- cgit v1.2.3 From 2f5d387f2235d8293e70d1807731861607357d4d Mon Sep 17 00:00:00 2001 From: "HATEC\\SPVDEV001" Date: Thu, 25 Apr 2024 16:34:29 +0700 Subject: fixing error search --- src/pages/api/shop/search.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'src/pages/api') diff --git a/src/pages/api/shop/search.js b/src/pages/api/shop/search.js index 10575d37..b6b8c795 100644 --- a/src/pages/api/shop/search.js +++ b/src/pages/api/shop/search.js @@ -77,14 +77,14 @@ export default async function handler(req, res) { parameter.push( `fq=${brand .split(',') - .map((manufacturer) => `manufacture_name:"${manufacturer}"`) + .map((manufacturer) => `manufacture_name:"${encodeURIComponent(manufacturer)}"`) .join(' OR ')}` ); if (category) parameter.push( `fq=${category .split(',') - .map((cat) => `category_name:"${cat}"`) + .map((cat) => `category_name:"${encodeURIComponent(cat)}"`) .join(' OR ')}` ); // if (category) parameter.push(`fq=category_name:${capitalizeFirstLetter(category.replace(/,/g, ' OR '))}`) -- cgit v1.2.3 From 4d849f1ab72a0d0eb5851662f200ccef21b66457 Mon Sep 17 00:00:00 2001 From: "HATEC\\SPVDEV001" Date: Tue, 18 Jun 2024 10:26:17 +0700 Subject: fixing error sign in and sign out google --- src/pages/api/auth/[...nextauth].js | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) (limited to 'src/pages/api') diff --git a/src/pages/api/auth/[...nextauth].js b/src/pages/api/auth/[...nextauth].js index 3c433167..c188aaa1 100644 --- a/src/pages/api/auth/[...nextauth].js +++ b/src/pages/api/auth/[...nextauth].js @@ -20,7 +20,11 @@ export default NextAuth({ session.accessToken = token.accessToken return session - } + }, + async redirect({ url, baseUrl }) { + // Redirect to dashboard after login + return url.startsWith(baseUrl) ? url : baseUrl; + }, }, secret: process.env.JWT_SECRET }) -- cgit v1.2.3 From 98109d3da0a88dfa1a513be68a0debe2e626d331 Mon Sep 17 00:00:00 2001 From: "HATEC\\SPVDEV001" Date: Tue, 18 Jun 2024 11:50:51 +0700 Subject: fixing error refirect login --- src/pages/api/auth/[...nextauth].js | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) (limited to 'src/pages/api') diff --git a/src/pages/api/auth/[...nextauth].js b/src/pages/api/auth/[...nextauth].js index c188aaa1..3c433167 100644 --- a/src/pages/api/auth/[...nextauth].js +++ b/src/pages/api/auth/[...nextauth].js @@ -20,11 +20,7 @@ export default NextAuth({ session.accessToken = token.accessToken return session - }, - async redirect({ url, baseUrl }) { - // Redirect to dashboard after login - return url.startsWith(baseUrl) ? url : baseUrl; - }, + } }, secret: process.env.JWT_SECRET }) -- cgit v1.2.3 From f559326406175b18f75d2dd42c8bd2f0d901acbf Mon Sep 17 00:00:00 2001 From: "HATEC\\SPVDEV001" Date: Fri, 21 Jun 2024 15:09:57 +0700 Subject: recomendation product for sales --- src/pages/api/shop/generate-recomendation.js | 36 +++++++++++++++------------- 1 file changed, 20 insertions(+), 16 deletions(-) (limited to 'src/pages/api') diff --git a/src/pages/api/shop/generate-recomendation.js b/src/pages/api/shop/generate-recomendation.js index 11dd153e..aea39adf 100644 --- a/src/pages/api/shop/generate-recomendation.js +++ b/src/pages/api/shop/generate-recomendation.js @@ -9,7 +9,7 @@ export default async function handler(req, res) { return res.status(422).json({ error: 'parameter missing' }) } - let parameter = [ + /*let parameter = [ `q=${escapeSolrQuery(q)}`, `q.op=${op}`, `indent=true`, @@ -22,23 +22,27 @@ export default async function handler(req, res) { ]; let result = await axios( process.env.SOLR_HOST + '/solr/product/select?' + parameter.join('&') + );*/ + let parameter = [ + `q=${escapeSolrQuery(q)}`, + `q.op=${op}`, + `debugQuery=on`, + `defType=edismax`, + `df=display_name_s`, + `fq=-publish_b:false`, + `rows=5`, + ]; + if(op == 'AND'){ + parameter.push(`sort=product_rating_f DESC, price_discount_f DESC`); + parameter.push(`rows=1`); + } + + let result = await axios( + process.env.SOLR_HOST + '/solr/recommendation/select?' + parameter.join('&') ); try { - let { auth } = req.cookies; - if (auth) auth = JSON.parse(auth); - result.data.response.products = productMappingSolr( - result.data.response.docs, - auth?.pricelist || false - ); - result.data.responseHeader.params.start = parseInt( - result.data.responseHeader.params.start - ); - result.data.responseHeader.params.rows = parseInt( - result.data.responseHeader.params.rows - ); - delete result.data.response.docs; - result.data = camelcaseObjectDeep(result.data); - res.status(200).json(result.data); + result.data = camelcaseObjectDeep(result.data) + res.status(200).json(result.data) } catch (error) { res.status(400).json({ error: error.message }); } -- cgit v1.2.3 From 59a0743aa8c64190d466bb66e2e37bfa80b0469c Mon Sep 17 00:00:00 2001 From: "HATEC\\SPVDEV001" Date: Fri, 28 Jun 2024 10:31:45 +0700 Subject: delete function remove special character --- src/pages/api/shop/generate-recomendation.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'src/pages/api') diff --git a/src/pages/api/shop/generate-recomendation.js b/src/pages/api/shop/generate-recomendation.js index aea39adf..dce8ae72 100644 --- a/src/pages/api/shop/generate-recomendation.js +++ b/src/pages/api/shop/generate-recomendation.js @@ -24,7 +24,7 @@ export default async function handler(req, res) { process.env.SOLR_HOST + '/solr/product/select?' + parameter.join('&') );*/ let parameter = [ - `q=${escapeSolrQuery(q)}`, + `q=${q}`, `q.op=${op}`, `debugQuery=on`, `defType=edismax`, -- cgit v1.2.3