summaryrefslogtreecommitdiff
path: root/src2/pages/api/shop
diff options
context:
space:
mode:
authorRafi Zadanly <zadanlyr@gmail.com>2023-03-02 16:51:05 +0700
committerRafi Zadanly <zadanlyr@gmail.com>2023-03-02 16:51:05 +0700
commitd336735a91133cc3f1cf6f67ba2ac29f0985fd2e (patch)
treef64a5c6de6e0ea015952ae028dca115077cffa45 /src2/pages/api/shop
parent074edfe4e51efd3b4a44dc7fe6e1284c9c560501 (diff)
delete src2
Diffstat (limited to 'src2/pages/api/shop')
-rw-r--r--src2/pages/api/shop/search.js96
-rw-r--r--src2/pages/api/shop/suggest.js12
2 files changed, 0 insertions, 108 deletions
diff --git a/src2/pages/api/shop/search.js b/src2/pages/api/shop/search.js
deleted file mode 100644
index ad986c86..00000000
--- a/src2/pages/api/shop/search.js
+++ /dev/null
@@ -1,96 +0,0 @@
-import axios from "axios";
-
-const productResponseMap = (products) => {
- return products.map((product) => {
- let productMapped = {
- id: product.product_id ? product.product_id[0] : '',
- image: product.image ? product.image[0] : '',
- code: product.default_code ? product.default_code[0] : '',
- name: product.product_name ? product.product_name[0] : '',
- lowest_price: {
- price: product.price ? product.price[0] : 0,
- price_discount: product.price_discount ? product.price_discount[0] : 0,
- discount_percentage: product.discount ? product.discount[0] : 0,
- },
- variant_total: product.variant_total ? product.variant_total[0] : 0,
- stock_total: product.stock_total ? product.stock_total[0] : 0,
- weight: product.weight ? product.weight[0] : 0,
- manufacture: {},
- categories: [],
- };
-
- if (product.manufacture_id && product.brand) {
- productMapped.manufacture = {
- id: product.manufacture_id ? product.manufacture_id[0] : '',
- name: product.brand ? product.brand[0] : '',
- };
- }
-
- productMapped.categories = [
- {
- id: product.category_id ? product.category_id[0] : '',
- name: product.category_name ? product.category_name[0] : '',
- }
- ];
-
- return productMapped;
- });
-}
-
-export default async function handler(req, res) {
- const {
- q,
- page = 1,
- brand = '',
- category = '',
- price_from = 0,
- price_to = 0,
- order_by = ''
- } = req.query;
-
- let paramOrderBy = '';
- switch (order_by) {
- case 'price-asc':
- paramOrderBy = ', price_discount ASC';
- break;
- case 'price-desc':
- paramOrderBy = ', price_discount DESC';
- break;
- case 'popular':
- paramOrderBy = ', search_rank DESC';
- break;
- case 'stock':
- paramOrderBy = ', stock_total DESC';
- break;
- }
-
- let limit = 30;
- let offset = (page - 1) * limit;
- let parameter = [
- `facet.query=${q}`,
- 'facet=true',
- 'indent=true',
- 'q.op=AND',
- `q=${q}`,
- 'facet.field=brand_str',
- 'facet.field=category_name_str',
- `start=${offset}`,
- `rows=${limit}`,
- `sort=product_rating DESC ${paramOrderBy}`,
- `fq=price_discount:[${price_from == '' ? '*' : price_from} TO ${price_to == '' ? '*' : price_to}]`
- ];
-
- if (brand) parameter.push(`fq=brand:${brand}`);
- if (category) parameter.push(`fq=category_name:${category}`);
-
- let result = await axios(process.env.SOLR_HOST + '/solr/products/select?' + parameter.join('&'));
- try {
- result.data.response.products = productResponseMap(result.data.response.docs);
- 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;
- res.status(200).json(result.data);
- } catch (error) {
- res.status(400).json({ error: error.message });
- }
-} \ No newline at end of file
diff --git a/src2/pages/api/shop/suggest.js b/src2/pages/api/shop/suggest.js
deleted file mode 100644
index 6db1a851..00000000
--- a/src2/pages/api/shop/suggest.js
+++ /dev/null
@@ -1,12 +0,0 @@
-import axios from "axios";
-
-export default async function handler(req, res) {
- const { q } = req.query;
-
- let result = await axios(process.env.SOLR_HOST + `/solr/products/suggest?suggest=true&suggest.dictionary=mySuggester&suggest.q=${q}`);
- try {
- res.status(200).json(result.data);
- } catch (error) {
- res.status(400).json({ error: error.message });
- }
-} \ No newline at end of file