summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/lib/product/api/productSearchApi.js2
-rw-r--r--src/lib/product/components/ProductSearch.jsx1
-rw-r--r--src/lib/promo/api/productSearchApi.js12
-rw-r--r--src/lib/promo/hooks/usePromotionSearch.js15
-rw-r--r--src/pages/api/shop/promo.js6
-rw-r--r--src/pages/shop/promo/[slug].jsx6
-rw-r--r--src/utils/solrMapping.js12
7 files changed, 39 insertions, 15 deletions
diff --git a/src/lib/product/api/productSearchApi.js b/src/lib/product/api/productSearchApi.js
index 670661aa..8ff8e57d 100644
--- a/src/lib/product/api/productSearchApi.js
+++ b/src/lib/product/api/productSearchApi.js
@@ -3,7 +3,7 @@ import axios from 'axios'
const productSearchApi = async ({ query, operation = 'OR' }) => {
const dataProductSearch = await axios(
- `${process.env.NEXT_PUBLIC_SELF_HOST}/api/shop/promo?${query}&operation=${operation}`
+ `${process.env.NEXT_PUBLIC_SELF_HOST}/api/shop/search?${query}&operation=${operation}`
)
return dataProductSearch.data
}
diff --git a/src/lib/product/components/ProductSearch.jsx b/src/lib/product/components/ProductSearch.jsx
index 1f083722..ab55cae0 100644
--- a/src/lib/product/components/ProductSearch.jsx
+++ b/src/lib/product/components/ProductSearch.jsx
@@ -87,7 +87,6 @@ const ProductSearch = ({
recurse(category);
return ids;
};
- console.log("queryFinal",queryFinal)
useEffect(() => {
if(prefixUrl.includes('category')){
const ids = collectIds(dataCategoriesProduct);
diff --git a/src/lib/promo/api/productSearchApi.js b/src/lib/promo/api/productSearchApi.js
new file mode 100644
index 00000000..582b4486
--- /dev/null
+++ b/src/lib/promo/api/productSearchApi.js
@@ -0,0 +1,12 @@
+import _ from 'lodash-contrib'
+import axios from 'axios'
+
+const productSearchApi = async ({ query, operation = 'AND' }) => {
+ const dataProductSearch = await axios(
+ `${process.env.NEXT_PUBLIC_SELF_HOST}/api/shop/promo?${query}&operation=${operation}`
+ )
+ console.log("dataProductSearch.data",dataProductSearch.data)
+ return dataProductSearch.data
+}
+
+export default productSearchApi
diff --git a/src/lib/promo/hooks/usePromotionSearch.js b/src/lib/promo/hooks/usePromotionSearch.js
new file mode 100644
index 00000000..1a194646
--- /dev/null
+++ b/src/lib/promo/hooks/usePromotionSearch.js
@@ -0,0 +1,15 @@
+import { useQuery } from 'react-query'
+import productSearchApi from '../api/productSearchApi'
+import _ from 'lodash-contrib'
+
+const usePromotionSearch = ({ query, operation }) => {
+ const queryString = _.toQuery(query)
+ const fetchProductSearch = async () => await productSearchApi({ query: queryString , operation : operation})
+ const productSearch = useQuery(`promoSearch-${queryString}`, fetchProductSearch)
+
+ return {
+ productSearch
+ }
+}
+
+export default usePromotionSearch
diff --git a/src/pages/api/shop/promo.js b/src/pages/api/shop/promo.js
index 353ff3df..e6867e89 100644
--- a/src/pages/api/shop/promo.js
+++ b/src/pages/api/shop/promo.js
@@ -108,12 +108,12 @@ export default async function handler(req, res) {
let result = await axios(
process.env.SOLR_HOST + '/solr/promotion_program_lines/select?' + parameter.join('&')
);
- console.log("result",result)
try {
result.data.response.products = promoMappingSolr(
- result.data.response.docs,
- auth?.pricelist || false
+ result.data.response.docs
);
+ console.log("result.data.response.products",result.data.response.products)
+
result.data.responseHeader.params.start = parseInt(
result.data.responseHeader.params.start
);
diff --git a/src/pages/shop/promo/[slug].jsx b/src/pages/shop/promo/[slug].jsx
index 544286f9..ce73ebd1 100644
--- a/src/pages/shop/promo/[slug].jsx
+++ b/src/pages/shop/promo/[slug].jsx
@@ -24,7 +24,7 @@ import whatsappUrl from '../../../core/utils/whatsappUrl.js';
import { cons, toQuery } from 'lodash-contrib';
import _ from 'lodash';
import useActive from '../../../core/hooks/useActive.js';
-import useProductSearch from '../../../lib/product/hooks/useProductSearch.js';
+import useProductSearch from '../../../lib/promo/hooks/usePromotionSearch.js';
const BasicLayout = dynamic(() => import('../../../core/components/layouts/BasicLayout.jsx'))
@@ -45,7 +45,7 @@ export default function PromoDetail() {
const popup = useActive();
const prefixUrl = `/shop/promo/${slug}`
const [queryFinal, setQueryFinal] = useState({});
- const [limit, setLimit] = useState<number>(30);
+ const [limit, setLimit] = useState(30);
const [q, setQ] = useState('*');
const [finalQuery, setFinalQuery] = useState({fq: `type_value_s:${slug}`});
const [products, setProducts] = useState(null);
@@ -365,7 +365,7 @@ export default function PromoDetail() {
) : promoData && promoItems.length >= 1 ? (
<>
<div className='grid grid-cols-1 gap-x-1 gap-y-1'>
- {visiblePromotions?.map((promotion) => (
+ {products?.map((promotion) => (
<div key={promotion.id} className="min-w-36 max-w-[400px] mb-[20px] sm:w-full md:w-1/2 lg:w-1/3 xl:w-1/4 ">
<ProductPromoCard promotion={promotion}/>
</div>
diff --git a/src/utils/solrMapping.js b/src/utils/solrMapping.js
index 7a115753..637d7c09 100644
--- a/src/utils/solrMapping.js
+++ b/src/utils/solrMapping.js
@@ -1,7 +1,6 @@
-export const promoMappingSolr = (promotions, pricelist) => {
- const result = [];
- for (const promotion of promotions) {
- const data = {
+export const promoMappingSolr = (promotions) => {
+ return promotions.map((promotion) =>{
+ let productMapped = {
id: promotion.id,
program_id: promotion.program_id_i,
name: promotion.name_s,
@@ -20,9 +19,8 @@ export const promoMappingSolr = (promotions, pricelist) => {
qty_sold_f:promotion.total_qty_sold_f,
free_products: JSON.parse(promotion.free_products_s),
};
- result.push(data);
- }
- return result;
+ return productMapped;
+ })
};