@reldens/storage 0.45.0 → 0.46.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.
@@ -157,6 +157,42 @@ class PrismaDriver extends BaseDriver
157
157
  return data;
158
158
  }
159
159
 
160
+ processFilters(filters)
161
+ {
162
+ if(!sc.isObject(filters)){
163
+ return filters;
164
+ }
165
+ let processedFilters = {};
166
+ for(let key of Object.keys(filters)){
167
+ let value = filters[key];
168
+ if(sc.hasOwn(value, 'operator') && sc.hasOwn(value, 'value')){
169
+ let operatorValue = value.value;
170
+ if('id' === key && sc.isArray(operatorValue)){
171
+ operatorValue = operatorValue.map(id => this.castIdValue(id));
172
+ }
173
+ if('id' === key && !sc.isArray(operatorValue)){
174
+ operatorValue = this.castIdValue(operatorValue);
175
+ }
176
+ processedFilters[key] = this.applyOperator(operatorValue, value.operator);
177
+ continue;
178
+ }
179
+ if(sc.isObject(value) && !sc.isArray(value)){
180
+ processedFilters[key] = this.processFilters(value);
181
+ continue;
182
+ }
183
+ if('id' === key && sc.isArray(value)){
184
+ processedFilters[key] = value.map(id => this.castIdValue(id));
185
+ continue;
186
+ }
187
+ if('id' === key){
188
+ processedFilters[key] = this.castIdValue(value);
189
+ continue;
190
+ }
191
+ processedFilters[key] = value;
192
+ }
193
+ return processedFilters;
194
+ }
195
+
160
196
  async create(params)
161
197
  {
162
198
  try {
@@ -205,8 +241,9 @@ class PrismaDriver extends BaseDriver
205
241
  {
206
242
  try {
207
243
  let preparedData = this.prepareData(updatePatch);
244
+ let processedFilters = this.processFilters(filters);
208
245
  return await this.model.updateMany({
209
- where: filters,
246
+ where: processedFilters,
210
247
  data: preparedData
211
248
  });
212
249
  } catch(error) {
@@ -285,8 +322,9 @@ class PrismaDriver extends BaseDriver
285
322
  async delete(filters = {})
286
323
  {
287
324
  try {
325
+ let processedFilters = this.processFilters(filters);
288
326
  return await this.model.deleteMany({
289
- where: filters
327
+ where: processedFilters
290
328
  });
291
329
  } catch(error) {
292
330
  Logger.error('Delete error: '+error.message);
@@ -314,8 +352,9 @@ class PrismaDriver extends BaseDriver
314
352
  async count(filters)
315
353
  {
316
354
  try {
355
+ let processedFilters = this.processFilters(filters);
317
356
  return await this.model.count({
318
- where: filters
357
+ where: processedFilters
319
358
  });
320
359
  } catch(error) {
321
360
  Logger.error('Count error: '+error.message);
@@ -326,8 +365,9 @@ class PrismaDriver extends BaseDriver
326
365
  async countWithRelations(filters, relations)
327
366
  {
328
367
  try {
368
+ let processedFilters = this.processFilters(filters);
329
369
  let query = {
330
- where: filters
370
+ where: processedFilters
331
371
  };
332
372
  if(sc.isArray(relations) && 0 < relations.length){
333
373
  query.include = this.buildIncludeObject(relations);
@@ -366,8 +406,9 @@ class PrismaDriver extends BaseDriver
366
406
  async load(filters)
367
407
  {
368
408
  try {
409
+ let processedFilters = this.processFilters(filters);
369
410
  let query = this.buildQueryOptions();
370
- query.where = filters;
411
+ query.where = processedFilters;
371
412
  return await this.model.findMany(query);
372
413
  } catch(error) {
373
414
  Logger.error('Load error: '+error.message);
@@ -378,8 +419,9 @@ class PrismaDriver extends BaseDriver
378
419
  async loadWithRelations(filters, relations)
379
420
  {
380
421
  try {
422
+ let processedFilters = this.processFilters(filters);
381
423
  let query = this.buildQueryOptions();
382
- query.where = filters;
424
+ query.where = processedFilters;
383
425
  if(sc.isArray(relations) && 0 < relations.length){
384
426
  query.include = this.buildIncludeObject(relations);
385
427
  }
@@ -467,8 +509,9 @@ class PrismaDriver extends BaseDriver
467
509
  async loadOne(filters)
468
510
  {
469
511
  try {
512
+ let processedFilters = this.processFilters(filters);
470
513
  let query = this.buildQueryOptions(false);
471
- query.where = filters;
514
+ query.where = processedFilters;
472
515
  return await this.model.findFirst(query);
473
516
  } catch(error) {
474
517
  Logger.error('Load one error: '+error.message);
@@ -479,8 +522,9 @@ class PrismaDriver extends BaseDriver
479
522
  async loadOneWithRelations(filters, relations)
480
523
  {
481
524
  try {
525
+ let processedFilters = this.processFilters(filters);
482
526
  let query = this.buildQueryOptions(false);
483
- query.where = filters;
527
+ query.where = processedFilters;
484
528
  if(sc.isArray(relations) && 0 < relations.length){
485
529
  query.include = this.buildIncludeObject(relations);
486
530
  }
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@reldens/storage",
3
3
  "scope": "@reldens",
4
- "version": "0.45.0",
4
+ "version": "0.46.0",
5
5
  "description": "Reldens - Storage",
6
6
  "author": "Damian A. Pastorini",
7
7
  "license": "MIT",
@@ -46,7 +46,7 @@
46
46
  "@mikro-orm/mongodb": "^6.4.15",
47
47
  "@mikro-orm/mysql": "^6.4.15",
48
48
  "@prisma/client": "^6.8.2",
49
- "@reldens/server-utils": "^0.16.0",
49
+ "@reldens/server-utils": "^0.17.0",
50
50
  "@reldens/utils": "^0.47.0",
51
51
  "knex": "^3.1.0",
52
52
  "mysql": "^2.18.1",