diff options
| author | Rafi Zadanly <zadanlyr@gmail.com> | 2023-04-10 14:43:30 +0700 |
|---|---|---|
| committer | Rafi Zadanly <zadanlyr@gmail.com> | 2023-04-10 14:43:30 +0700 |
| commit | 9c2c365da1edb2e2835d19303cdee81e53f3deb8 (patch) | |
| tree | 372ab9938a9b360e73bc6ca31d53906eab4d5aff | |
| parent | 4a05c21f583e1482acb126d51aafe5cbce49707f (diff) | |
fix reset password, register, search, suggest
| -rw-r--r-- | src/lib/auth/api/registerApi.js | 2 | ||||
| -rw-r--r-- | src/lib/auth/components/PersonalProfile.jsx | 2 | ||||
| -rw-r--r-- | src/lib/checkout/components/Checkout.jsx | 2 | ||||
| -rw-r--r-- | src/lib/product/components/Product/ProductDesktop.jsx | 2 | ||||
| -rw-r--r-- | src/lib/product/components/Product/ProductMobile.jsx | 2 | ||||
| -rw-r--r-- | src/pages/api/shop/search.js | 30 | ||||
| -rw-r--r-- | src/pages/api/shop/suggest.js | 2 | ||||
| -rw-r--r-- | src/pages/reset-password.jsx | 7 |
8 files changed, 31 insertions, 18 deletions
diff --git a/src/lib/auth/api/registerApi.js b/src/lib/auth/api/registerApi.js index f3d75ce8..f9413f8c 100644 --- a/src/lib/auth/api/registerApi.js +++ b/src/lib/auth/api/registerApi.js @@ -1,6 +1,6 @@ import odooApi from '@/core/api/odooApi' -const registerApi = async ({ data }) => { +const registerApi = async ({ ...data }) => { const dataRegister = await odooApi('POST', '/api/v1/user/register', data) return dataRegister } diff --git a/src/lib/auth/components/PersonalProfile.jsx b/src/lib/auth/components/PersonalProfile.jsx index 0b387f2e..4f606ed4 100644 --- a/src/lib/auth/components/PersonalProfile.jsx +++ b/src/lib/auth/components/PersonalProfile.jsx @@ -34,7 +34,7 @@ const PersonalProfile = () => { let data = values if (!values.password) delete data.password const isUpdated = await editPersonalProfileApi({ data }) - console.log(isUpdated) + if (isUpdated?.user) { setAuth(isUpdated.user) setValue('password', '') diff --git a/src/lib/checkout/components/Checkout.jsx b/src/lib/checkout/components/Checkout.jsx index 17ac20e1..37a67d88 100644 --- a/src/lib/checkout/components/Checkout.jsx +++ b/src/lib/checkout/components/Checkout.jsx @@ -270,7 +270,7 @@ const Checkout = () => { {products?.map((product) => ( <tr key={product.id}> <td className='flex'> - <div className='w-[30%] flex-shrink-0'> + <div className='w-[20%] flex-shrink-0'> <Image src={product?.parent?.image} alt={product?.name} diff --git a/src/lib/product/components/Product/ProductDesktop.jsx b/src/lib/product/components/Product/ProductDesktop.jsx index faff375f..37a258a6 100644 --- a/src/lib/product/components/Product/ProductDesktop.jsx +++ b/src/lib/product/components/Product/ProductDesktop.jsx @@ -75,7 +75,7 @@ const ProductDesktop = ({ product, wishlist, toggleWishlist }) => { } const productSimilarQuery = [ - product?.name.replace(/[()/"&]/g, ''), + product?.name, `fq=-product_id_i:${product.id}`, `fq=-manufacture_id_i:${product.manufacture?.id || 0}` ].join('&') diff --git a/src/lib/product/components/Product/ProductMobile.jsx b/src/lib/product/components/Product/ProductMobile.jsx index 493fcbf7..19b4c4b2 100644 --- a/src/lib/product/components/Product/ProductMobile.jsx +++ b/src/lib/product/components/Product/ProductMobile.jsx @@ -96,7 +96,7 @@ const ProductMobile = ({ product, wishlist, toggleWishlist }) => { } const productSimilarQuery = [ - product?.name.replace(/[()/"&]/g, ''), + product?.name, `fq=-product_id_i:${product.id}`, `fq=-manufacture_id_i:${product.manufacture?.id || 0}` ].join('&') diff --git a/src/pages/api/shop/search.js b/src/pages/api/shop/search.js index ef070dcd..bab96237 100644 --- a/src/pages/api/shop/search.js +++ b/src/pages/api/shop/search.js @@ -15,19 +15,19 @@ export default async function handler(req, res) { limit = 30 } = req.query - let paramOrderBy = '' + let paramOrderBy = 'product_rating_f DESC' switch (orderBy) { case 'price-asc': - paramOrderBy = ', price_discount_f ASC' + paramOrderBy += ', price_discount_f ASC' break case 'price-desc': - paramOrderBy = ', price_discount_f DESC' + paramOrderBy += ', price_discount_f DESC' break case 'popular': - paramOrderBy = ', search_rank_i DESC' + paramOrderBy += ', search_rank_i DESC' break case 'stock': - paramOrderBy = ', stock_total_f DESC' + paramOrderBy += ', stock_total_f DESC' break } @@ -37,12 +37,13 @@ export default async function handler(req, res) { 'facet.field=category_name', 'facet=true', 'indent=true', - `facet.query=${q}`, + `facet.query=${escapeSolrQuery(q)}`, `q.op=${operation}`, `q=${escapeSolrQuery(q)}`, + 'qf=name_s', `start=${offset}`, `rows=${limit}`, - `sort=product_rating_f DESC ${paramOrderBy}`, + `sort=${paramOrderBy}`, `fq=price_discount_f:[${priceFrom == '' ? '*' : priceFrom} TO ${priceTo == '' ? '*' : priceTo}]` ] @@ -68,9 +69,18 @@ export default async function handler(req, res) { } const escapeSolrQuery = (query) => { - const specialChars = /[\]\[{}()"\\]/g - const escapedQuery = query.replace(specialChars, '\\$&') - return escapedQuery + 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(' ') } const productResponseMap = (products) => { diff --git a/src/pages/api/shop/suggest.js b/src/pages/api/shop/suggest.js index 5a1b559a..83ab69d4 100644 --- a/src/pages/api/shop/suggest.js +++ b/src/pages/api/shop/suggest.js @@ -5,7 +5,7 @@ export default async function handler(req, res) { let result = await axios( process.env.SOLR_HOST + - `/solr/product/suggest?suggest=true&suggest.dictionary=mySuggester&suggest.q=${q}` + `/solr/product/suggest?suggest=true&suggest.dictionary=mySuggester&q=${q}` ) try { res.status(200).json(result.data.suggest.mySuggester[q]) diff --git a/src/pages/reset-password.jsx b/src/pages/reset-password.jsx index a4aa2201..0bf6f31e 100644 --- a/src/pages/reset-password.jsx +++ b/src/pages/reset-password.jsx @@ -46,7 +46,7 @@ const FormComponent = () => { const checkValidPassword = () => { const passwordVal = password.current.value const retypePasswordVal = retypePassword.current.value - if (passwordVal == retypePasswordVal) { + if (passwordVal && passwordVal == retypePasswordVal) { setIsValidPassword(true) } else { setIsValidPassword(false) @@ -56,7 +56,10 @@ const FormComponent = () => { const resetPasswordRequest = async (e) => { e.preventDefault() setIsLoading(true) - const result = await odooApi('POST', '/api/v1/user/reset-password', { token }) + const result = await odooApi('POST', '/api/v1/user/reset-password', { + token, + password: password.current.value + }) setIsLoading(false) password.current.value = '' retypePassword.current.value = '' |
