@reldens/storage 0.23.0 → 0.25.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.
package/lib/base-driver.js
CHANGED
|
@@ -71,6 +71,11 @@ class BaseDriver
|
|
|
71
71
|
ErrorManager.error('BaseDriver updateById() not implemented.');
|
|
72
72
|
}
|
|
73
73
|
|
|
74
|
+
upsert(params, filters)
|
|
75
|
+
{
|
|
76
|
+
ErrorManager.error('BaseDriver upsert() not implemented.');
|
|
77
|
+
}
|
|
78
|
+
|
|
74
79
|
delete(filters)
|
|
75
80
|
{
|
|
76
81
|
ErrorManager.error('BaseDriver delete() not implemented.');
|
|
@@ -64,12 +64,33 @@ class ObjectionJsDriver extends BaseDriver
|
|
|
64
64
|
return this.queryBuilder().patchAndFetchById(id, params);
|
|
65
65
|
}
|
|
66
66
|
|
|
67
|
-
|
|
67
|
+
async upsert(params, filters)
|
|
68
|
+
{
|
|
69
|
+
if(params.id){
|
|
70
|
+
let patch = Object.assign({}, params);
|
|
71
|
+
delete patch.id;
|
|
72
|
+
return this.queryBuilder().patchAndFetchById(params.id, patch).onConflict().merge();
|
|
73
|
+
}
|
|
74
|
+
if(filters){
|
|
75
|
+
let existent = await this.loadOne(filters);
|
|
76
|
+
if(existent){
|
|
77
|
+
return this.queryBuilder().patchAndFetchById(existent.id, params).onConflict().merge();
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
return this.create(params);
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
delete(filters)
|
|
68
84
|
{
|
|
69
85
|
let queryBuilder = this.queryBuilder(true, true, true);
|
|
70
86
|
return this.appendFilters(queryBuilder, filters).delete();
|
|
71
87
|
}
|
|
72
88
|
|
|
89
|
+
deleteBy(filters)
|
|
90
|
+
{
|
|
91
|
+
this.delete(filters);
|
|
92
|
+
}
|
|
93
|
+
|
|
73
94
|
deleteById(id)
|
|
74
95
|
{
|
|
75
96
|
return this.queryBuilder().deleteById(id);
|
|
@@ -201,9 +222,16 @@ class ObjectionJsDriver extends BaseDriver
|
|
|
201
222
|
}
|
|
202
223
|
for(let i of filtersKeys){
|
|
203
224
|
let filter = filters[i];
|
|
204
|
-
sc.
|
|
205
|
-
|
|
206
|
-
|
|
225
|
+
let filterOperator = sc.get(filter, 'operator');
|
|
226
|
+
if(filterOperator){
|
|
227
|
+
if('IN' === filterOperator){
|
|
228
|
+
queryBuilder.whereIn(i, filter.value);
|
|
229
|
+
continue;
|
|
230
|
+
}
|
|
231
|
+
queryBuilder.where(i, filter.operator, filter.value);
|
|
232
|
+
continue;
|
|
233
|
+
}
|
|
234
|
+
queryBuilder.where(i, filter);
|
|
207
235
|
}
|
|
208
236
|
return queryBuilder;
|
|
209
237
|
}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@reldens/storage",
|
|
3
3
|
"scope": "@reldens",
|
|
4
|
-
"version": "0.
|
|
4
|
+
"version": "0.25.0",
|
|
5
5
|
"description": "Reldens - Storage",
|
|
6
6
|
"author": "Damian A. Pastorini",
|
|
7
7
|
"license": "MIT",
|
|
@@ -44,9 +44,9 @@
|
|
|
44
44
|
"url": "https://github.com/damian-pastorini/reldens-storage/issues"
|
|
45
45
|
},
|
|
46
46
|
"dependencies": {
|
|
47
|
-
"@mikro-orm/core": "^6.2.
|
|
48
|
-
"@mikro-orm/mongodb": "^6.2.
|
|
49
|
-
"@reldens/utils": "^0.
|
|
47
|
+
"@mikro-orm/core": "^6.2.9",
|
|
48
|
+
"@mikro-orm/mongodb": "^6.2.9",
|
|
49
|
+
"@reldens/utils": "^0.33.0",
|
|
50
50
|
"knex": "^3.1.0",
|
|
51
51
|
"mysql": "^2.18.1",
|
|
52
52
|
"objection": "^3.1.4"
|