@vasrefil/api-toolkit 1.10.5 → 1.11.0

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,9 +15,16 @@ declare class QueryHelper_ {
15
15
  }): {};
16
16
  get_filters(filter: any): any;
17
17
  process_filters: (query: any) => {} | undefined;
18
- private get_search;
19
18
  private get_sort;
19
+ private get_limit;
20
+ private get_page;
21
+ private get_skip;
20
22
  private str_to_obj;
23
+ private get_range_filter;
24
+ private get_date_filter;
25
+ private get_filter;
26
+ private get_search;
27
+ private get_filter_result;
21
28
  }
22
29
  declare const QueryHelper: QueryHelper_;
23
30
  export { QueryHelper };
@@ -74,24 +74,12 @@ class QueryHelper_ {
74
74
  build_query(query) {
75
75
  if (!query)
76
76
  query = {};
77
- const { filter, limit, page, filterRange, date_range, date_type } = query;
78
- let range = filterRange ? this.str_to_obj(filterRange) : null;
79
- const filterx = filter ? this.str_to_obj(filter) : {};
80
- const date_rangex = date_range ? this.str_to_obj(date_range) : {};
81
- const limitx = Number(limit) || 20;
82
- const pagex = page ? Number(page) : 1;
83
- const skip = page ? ((Number(pagex) - 1) * limitx) : 0;
84
- if (range) {
85
- const { field, ranges: { from, to } } = range;
86
- range = { [field]: { $gte: from, $lt: to } };
87
- }
88
- const search = this.get_search(query);
89
- const filterResult = range || filterx || {};
90
- const date_range_ = this.get_date_range({ date_type, date_range: date_rangex });
91
- const filters = this.process_filters(query);
77
+ const limit = this.get_limit(query);
78
+ const page = this.get_page(query);
79
+ const skip = this.get_skip(query);
92
80
  const sort = this.get_sort(query);
93
- const filter_result = { ...filterResult, ...date_range_, ...search, ...filters };
94
- return { sort, limit: limitx, filter: filter_result, skip, page: pagex };
81
+ const filter = this.get_filter_result(query);
82
+ return { sort, limit, filter, skip, page };
95
83
  }
96
84
  get_date_range(payload) {
97
85
  let date_filter_range = null;
@@ -156,7 +144,7 @@ class QueryHelper_ {
156
144
  get_sort(query) {
157
145
  try {
158
146
  const { key, value } = query.sort ? this.str_to_obj(query.sort) : {};
159
- const single_sort = { [key || 'createdAt']: value || '-1' };
147
+ const single_sort = { [key || 'createdAt']: value || -1 };
160
148
  const sorts = query.sorts ? this.str_to_obj(query.sorts) : {};
161
149
  const sort = Object.values(sorts).length ? sorts : single_sort;
162
150
  return sort;
@@ -165,9 +153,58 @@ class QueryHelper_ {
165
153
  throw error;
166
154
  }
167
155
  }
156
+ get_limit(query) {
157
+ const limit = Number(query.limit) || 20;
158
+ return limit;
159
+ }
160
+ get_page(query) {
161
+ const page = Number(query.page) || 1;
162
+ return page;
163
+ }
164
+ get_skip(query) {
165
+ const limit = this.get_limit(query);
166
+ const page = this.get_page(query);
167
+ const skip = query.page ? ((Number(page) - 1) * limit) : 0;
168
+ return skip;
169
+ }
168
170
  str_to_obj(string) {
169
171
  return JSON.parse(string);
170
172
  }
173
+ // Filter Functions
174
+ get_range_filter(query) {
175
+ const { filter_range } = query;
176
+ let range = filter_range ? this.str_to_obj(filter_range) : null;
177
+ if (range) {
178
+ const { field, ranges: { from, to } } = range;
179
+ range = { [field]: { $gte: from, $lt: to } };
180
+ }
181
+ return range;
182
+ }
183
+ get_date_filter(query) {
184
+ const { date_type, date_range } = query;
185
+ const range = date_range ? this.str_to_obj(date_range) : {};
186
+ const result = this.get_date_range({ date_type, date_range: range });
187
+ return result;
188
+ }
189
+ get_filter(query) {
190
+ const filter = query.filter ? this.str_to_obj(query.filter) : {};
191
+ return filter;
192
+ }
193
+ get_filter_result(query) {
194
+ const filter = this.get_filter(query);
195
+ const date_filter = this.get_date_filter(query);
196
+ const range = this.get_range_filter(query);
197
+ const search = this.get_search(query);
198
+ const filters = this.process_filters(query);
199
+ const result = {
200
+ ...range,
201
+ ...filter,
202
+ ...date_filter,
203
+ ...search,
204
+ ...filters
205
+ };
206
+ return result;
207
+ }
171
208
  }
172
209
  const QueryHelper = new QueryHelper_;
173
210
  exports.QueryHelper = QueryHelper;
@@ -8,5 +8,9 @@ export interface ApiRequestPayloadI {
8
8
  headers?: any;
9
9
  apiKey?: string;
10
10
  }
11
+ export declare const ApiRequest: (request: ApiRequestPayloadI, option: {
12
+ BASEURL: string;
13
+ API_KEY: string;
14
+ }) => Promise<any>;
11
15
  export declare const VasrefilApiRequest: (request: ApiRequestPayloadI) => Promise<any>;
12
16
  export declare const LogApiRequest: (request: ApiRequestPayloadI) => Promise<any>;
@@ -3,7 +3,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.LogApiRequest = exports.VasrefilApiRequest = void 0;
6
+ exports.LogApiRequest = exports.VasrefilApiRequest = exports.ApiRequest = void 0;
7
7
  const axios_1 = __importDefault(require("axios"));
8
8
  const env_1 = __importDefault(require("../env"));
9
9
  const helpers_1 = require("../helpers");
@@ -25,11 +25,12 @@ const ApiRequest = async (request, option) => {
25
25
  throw error;
26
26
  }
27
27
  };
28
+ exports.ApiRequest = ApiRequest;
28
29
  const VasrefilApiRequest = async (request) => {
29
30
  try {
30
31
  const API_KEY = env_1.default.VASREFIL.API_KEY;
31
32
  const BASEURL = env_1.default.VASREFIL.BASEURL;
32
- const data = await ApiRequest(request, { BASEURL, API_KEY });
33
+ const data = await (0, exports.ApiRequest)(request, { BASEURL, API_KEY });
33
34
  return data;
34
35
  }
35
36
  catch (error) {
@@ -44,7 +45,7 @@ const LogApiRequest = async (request) => {
44
45
  try {
45
46
  const API_KEY = env_1.default.LOG.API_KEY;
46
47
  const BASEURL = env_1.default.LOG.BASEURL;
47
- const data = await ApiRequest(request, { BASEURL, API_KEY });
48
+ const data = await (0, exports.ApiRequest)(request, { BASEURL, API_KEY });
48
49
  return data;
49
50
  }
50
51
  catch (error) {
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.10.5",
4
+ "version": "1.11.0",
5
5
  "author": "Sodiq Alabi",
6
6
  "main": "dist/public-api.js",
7
7
  "types": "dist/public-api.d.ts",