summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authoreug-vs <eug-vs@keemail.me>2021-04-17 19:57:19 +0300
committereug-vs <eug-vs@keemail.me>2021-04-17 19:57:19 +0300
commit1da159d1102bf0ded9ce50d447c821258c7be800 (patch)
treefe6c86300f933abf0756b846d76bbe8f3abd63d6 /src
parentf34d29c80850bdf582d1568dc98ae67d1895f082 (diff)
downloadcommercel-api-1da159d1102bf0ded9ce50d447c821258c7be800.tar.gz
feat: add ignoreCaseRegex hook
Diffstat (limited to 'src')
-rw-r--r--src/hooks/ignoreCaseRegex.ts11
-rw-r--r--src/services/index.ts3
-rw-r--r--src/services/products.service.ts2
3 files changed, 14 insertions, 2 deletions
diff --git a/src/hooks/ignoreCaseRegex.ts b/src/hooks/ignoreCaseRegex.ts
new file mode 100644
index 0000000..e996000
--- /dev/null
+++ b/src/hooks/ignoreCaseRegex.ts
@@ -0,0 +1,11 @@
+import { HookContext } from '@feathersjs/feathers';
+import _ from 'lodash';
+
+const ignoreCaseRegex = async (context: HookContext): Promise<HookContext> => {
+ context.params.query = _.mapValues(context.params.query, (data, key) => {
+ return key.startsWith('$') ? data : _.set(data, '$options', 'i');
+ });
+ return context;
+};
+
+export default ignoreCaseRegex;
diff --git a/src/services/index.ts b/src/services/index.ts
index 42b1fbd..b94380d 100644
--- a/src/services/index.ts
+++ b/src/services/index.ts
@@ -6,6 +6,7 @@ import Tranfers from './transfers.service';
import Spreadsheets from './spreadsheets.service';
import Uploads from './uploads.service';
import sortByDate from '../hooks/sortByDate';
+import ignoreCaseRegex from '../hooks/ignoreCaseRegex';
export default (app: Application): void => {
app.configure(Products);
@@ -19,7 +20,7 @@ export default (app: Application): void => {
app.hooks({
before: {
- find: sortByDate
+ find: [sortByDate, ignoreCaseRegex]
},
})
};
diff --git a/src/services/products.service.ts b/src/services/products.service.ts
index f3ae2b6..9934a66 100644
--- a/src/services/products.service.ts
+++ b/src/services/products.service.ts
@@ -2,7 +2,7 @@ import { Application } from '@feathersjs/express';
import service from 'feathers-mongoose';
import Model from '../models/product/product.model';
-const Products = service({ Model });
+const Products = service({ Model, whitelist: ['$options', '$regex'] });
export default (app: Application): void => {
app.use('/products', Products);