@vasrefil/api-toolkit 1.0.27 → 1.0.29

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -15,6 +15,7 @@ declare class QueryHelper_ {
15
15
  }): {};
16
16
  get_filters(filter: any): any;
17
17
  process_filters: (query: any) => {} | undefined;
18
+ private get_search;
18
19
  private get_sort;
19
20
  private str_to_obj;
20
21
  }
@@ -34,14 +34,28 @@ class QueryHelper_ {
34
34
  console.log(error);
35
35
  }
36
36
  };
37
+ this.get_search = (query) => {
38
+ const { search } = query;
39
+ let searchx = search ? this.str_to_obj(search) : {};
40
+ let result = {};
41
+ if (searchx.key && searchx.value) {
42
+ const keys = searchx.key.split(',');
43
+ const filters = [];
44
+ for (let key of keys) {
45
+ key = key.trim();
46
+ filters.push({ [key]: { $regex: new RegExp(`${searchx.value}`, 'i') } });
47
+ }
48
+ result = { '$or': filters };
49
+ }
50
+ return result;
51
+ };
37
52
  }
38
53
  build_query(query) {
39
54
  if (!query)
40
55
  query = {};
41
- const { filter, limit, page, filterRange, date_range, date_type, search } = query;
56
+ const { filter, limit, page, filterRange, date_range, date_type } = query;
42
57
  let range = filterRange ? this.str_to_obj(filterRange) : null;
43
58
  const filterx = filter ? this.str_to_obj(filter) : {};
44
- let searchx = search ? this.str_to_obj(search) : {};
45
59
  const date_rangex = date_range ? this.str_to_obj(date_range) : {};
46
60
  const pagex = page ? Number(page) : 1;
47
61
  const skipx = page ? ((Number(page) - 1) * limit) : 0;
@@ -50,13 +64,12 @@ class QueryHelper_ {
50
64
  const { field, ranges: { from, to } } = range;
51
65
  range = { [field]: { $gte: from, $lt: to } };
52
66
  }
53
- searchx = searchx.key && searchx.value ? searchx : null;
67
+ const search = this.get_search(query);
54
68
  const filterResult = range || filterx || {};
55
69
  const date_range_ = this.get_date_range({ date_type, date_range: date_rangex });
56
- const search_ = searchx ? { [searchx.key]: { $regex: new RegExp(`${searchx.value}`, 'i') } } : {};
57
70
  const filters = this.process_filters(query);
58
71
  const sort = this.get_sort(query);
59
- const filter_result = { ...filterResult, ...date_range_, ...search_, ...filters };
72
+ const filter_result = { ...filterResult, ...date_range_, ...search, ...filters };
60
73
  return { sort, limit: limitx, filter: filter_result, skip: skipx, page: pagex };
61
74
  }
62
75
  get_date_range(payload) {
@@ -1,6 +1,6 @@
1
1
  import { Response, NextFunction } from 'express';
2
2
  import { RootService } from '../services/_root.service';
3
- import { AdminRequestI } from 'src/interfaces/admin.interface';
3
+ import { AdminRequestI } from '../interfaces/admin.interface';
4
4
  declare class AdminAuthMidWare_ extends RootService {
5
5
  auth: (req: AdminRequestI, res: Response, next: NextFunction) => Promise<any>;
6
6
  voucher_auth: (req: AdminRequestI, res: Response, next: NextFunction) => Promise<any>;
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@vasrefil/api-toolkit",
3
3
  "description": "This is Vasrefil API toolkit",
4
- "version": "1.0.27",
4
+ "version": "1.0.29",
5
5
  "author": "Sodiq Alabi",
6
6
  "main": "dist/public-api.js",
7
7
  "types": "dist/public-api.d.ts",