@punks/backend-entity-manager 0.0.164 → 0.0.166
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/dist/cjs/index.js +79 -58
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/types/integrations/repository/typeorm/queryBuilder.d.ts +12 -4
- package/dist/cjs/types/platforms/nest/__test__/server/database/core/entities/crmContact.entity.d.ts +2 -0
- package/dist/cjs/types/platforms/nest/__test__/server/database/core/entities/foo.entity.d.ts +2 -0
- package/dist/cjs/types/platforms/nest/__test__/server/entities/foos/foo.query.d.ts +1 -0
- package/dist/esm/index.js +79 -58
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/types/integrations/repository/typeorm/queryBuilder.d.ts +12 -4
- package/dist/esm/types/platforms/nest/__test__/server/database/core/entities/crmContact.entity.d.ts +2 -0
- package/dist/esm/types/platforms/nest/__test__/server/database/core/entities/foo.entity.d.ts +2 -0
- package/dist/esm/types/platforms/nest/__test__/server/entities/foos/foo.query.d.ts +1 -0
- package/dist/index.d.ts +12 -4
- package/package.json +3 -2
package/dist/cjs/index.js
CHANGED
|
@@ -448,9 +448,8 @@ class EntitiesSearchAction {
|
|
|
448
448
|
this.services = services;
|
|
449
449
|
}
|
|
450
450
|
async execute(request) {
|
|
451
|
-
const
|
|
452
|
-
|
|
453
|
-
.execute(request);
|
|
451
|
+
const searchQuery = this.services.resolveSearchQuery();
|
|
452
|
+
const results = await searchQuery.execute(request);
|
|
454
453
|
const converter = this.services.resolveConverter();
|
|
455
454
|
return {
|
|
456
455
|
facets: results.facets,
|
|
@@ -633,7 +632,7 @@ class EntitiesDeleteCommand {
|
|
|
633
632
|
return undefined;
|
|
634
633
|
}
|
|
635
634
|
const contextService = this.services.resolveAuthenticationContextProvider();
|
|
636
|
-
return await contextService
|
|
635
|
+
return await contextService?.getContext();
|
|
637
636
|
}
|
|
638
637
|
async authorize() {
|
|
639
638
|
const authorization = this.services.resolveAuthorizationMiddleware();
|
|
@@ -1723,7 +1722,7 @@ class EntitiesCountQuery {
|
|
|
1723
1722
|
return undefined;
|
|
1724
1723
|
}
|
|
1725
1724
|
const contextService = this.services.resolveAuthenticationContextProvider();
|
|
1726
|
-
return await contextService
|
|
1725
|
+
return await contextService?.getContext();
|
|
1727
1726
|
}
|
|
1728
1727
|
async authorizeSearch(context) {
|
|
1729
1728
|
const authorization = this.services.resolveAuthorizationMiddleware();
|
|
@@ -1754,7 +1753,7 @@ class EntityExistsQuery {
|
|
|
1754
1753
|
return undefined;
|
|
1755
1754
|
}
|
|
1756
1755
|
const contextService = this.services.resolveAuthenticationContextProvider();
|
|
1757
|
-
return await contextService
|
|
1756
|
+
return await contextService?.getContext();
|
|
1758
1757
|
}
|
|
1759
1758
|
async authorizeSearch(context) {
|
|
1760
1759
|
const authorization = this.services.resolveAuthorizationMiddleware();
|
|
@@ -1860,9 +1859,8 @@ class EntitiesSearchQuery {
|
|
|
1860
1859
|
async execute(request) {
|
|
1861
1860
|
const context = await this.getContext();
|
|
1862
1861
|
await this.authorizeSearch(context);
|
|
1863
|
-
const
|
|
1864
|
-
|
|
1865
|
-
.search(request, context);
|
|
1862
|
+
const queryBuilder = this.services.resolveQueryBuilder();
|
|
1863
|
+
const result = await queryBuilder.search(request, context);
|
|
1866
1864
|
const filteredEntities = await this.filterAllowedEntities(result.items, context);
|
|
1867
1865
|
return {
|
|
1868
1866
|
...result,
|
|
@@ -1929,7 +1927,7 @@ class EntityVersionsSearchQuery {
|
|
|
1929
1927
|
return undefined;
|
|
1930
1928
|
}
|
|
1931
1929
|
const contextService = this.services.resolveAuthenticationContextProvider();
|
|
1932
|
-
return await contextService
|
|
1930
|
+
return await contextService?.getContext();
|
|
1933
1931
|
}
|
|
1934
1932
|
async authorizeSearch(context) {
|
|
1935
1933
|
const authorization = this.services.resolveAuthorizationMiddleware();
|
|
@@ -22222,10 +22220,7 @@ class TypeOrmQueryBuilder extends QueryBuilderBase {
|
|
|
22222
22220
|
const request = {
|
|
22223
22221
|
filters,
|
|
22224
22222
|
};
|
|
22225
|
-
return await this.getRepository().deleteBy(
|
|
22226
|
-
...(context ? this.buildContextFilter(context) : {}),
|
|
22227
|
-
...this.buildWhereClause(request),
|
|
22228
|
-
});
|
|
22223
|
+
return await this.getRepository().deleteBy(this.buildWhere(request, context));
|
|
22229
22224
|
}
|
|
22230
22225
|
async find(request, context) {
|
|
22231
22226
|
const results = await this.findPagedQueryResults({
|
|
@@ -22257,20 +22252,13 @@ class TypeOrmQueryBuilder extends QueryBuilderBase {
|
|
|
22257
22252
|
}
|
|
22258
22253
|
async getFieldDistinctValues(field, request, context) {
|
|
22259
22254
|
return await this.getRepository().distinct(field, {
|
|
22260
|
-
where:
|
|
22261
|
-
...(context ? this.buildContextFilter(context) : {}),
|
|
22262
|
-
...this.buildWhereClause(request),
|
|
22263
|
-
},
|
|
22255
|
+
where: this.buildWhere(request, context),
|
|
22264
22256
|
});
|
|
22265
22257
|
}
|
|
22266
22258
|
async findPagedQueryResults(request, context) {
|
|
22267
22259
|
return await this.getRepository().find({
|
|
22268
|
-
where:
|
|
22269
|
-
|
|
22270
|
-
...this.buildWhereClause(request),
|
|
22271
|
-
},
|
|
22272
|
-
relations: request.relations ??
|
|
22273
|
-
this.getRelationsToLoad(request, context, exports.QueryBuilderOperation.Search),
|
|
22260
|
+
where: this.buildWhere(request, context),
|
|
22261
|
+
relations: this.buildSearchRelations(request, context),
|
|
22274
22262
|
order: this.buildSortingClause(request),
|
|
22275
22263
|
...this.buildPagingParameters(request),
|
|
22276
22264
|
});
|
|
@@ -22288,23 +22276,23 @@ class TypeOrmQueryBuilder extends QueryBuilderBase {
|
|
|
22288
22276
|
}
|
|
22289
22277
|
async countQueryResults(request, context) {
|
|
22290
22278
|
return await this.getRepository().count({
|
|
22291
|
-
where:
|
|
22292
|
-
...(context ? this.buildContextFilter(context) : {}),
|
|
22293
|
-
...this.buildWhereClause(request),
|
|
22294
|
-
},
|
|
22279
|
+
where: this.buildWhere(request, context),
|
|
22295
22280
|
});
|
|
22296
22281
|
}
|
|
22297
|
-
|
|
22298
|
-
|
|
22299
|
-
|
|
22300
|
-
|
|
22301
|
-
|
|
22302
|
-
const results = await this.getRepository()
|
|
22282
|
+
buildTextSearchClause(request) {
|
|
22283
|
+
return {};
|
|
22284
|
+
}
|
|
22285
|
+
async calculateFacet(field, request, context, relations) {
|
|
22286
|
+
let query = this.getRepository()
|
|
22303
22287
|
.getInnerRepository()
|
|
22304
|
-
.createQueryBuilder()
|
|
22288
|
+
.createQueryBuilder("entity");
|
|
22289
|
+
for (const relation of relations?.columns ?? []) {
|
|
22290
|
+
query = query.leftJoin(`entity.${relation}`, relation);
|
|
22291
|
+
}
|
|
22292
|
+
const results = await query
|
|
22305
22293
|
.select(field, "value")
|
|
22306
22294
|
.addSelect(`COUNT(${field})`, "count")
|
|
22307
|
-
.where(
|
|
22295
|
+
.where(this.buildWhere(request, context))
|
|
22308
22296
|
.addGroupBy(field)
|
|
22309
22297
|
.orderBy(field)
|
|
22310
22298
|
.getRawMany();
|
|
@@ -22315,34 +22303,67 @@ class TypeOrmQueryBuilder extends QueryBuilderBase {
|
|
|
22315
22303
|
})),
|
|
22316
22304
|
};
|
|
22317
22305
|
}
|
|
22318
|
-
async calculateStringFieldFacets(field, request, context) {
|
|
22319
|
-
return await this.calculateFacet(field, request, context);
|
|
22320
|
-
}
|
|
22321
|
-
async calculateNumericFieldFacets(field, request, context) {
|
|
22322
|
-
return await this.calculateFacet(field, request, context);
|
|
22323
|
-
}
|
|
22324
|
-
async calculateBooleanFieldFacets(field, request, context) {
|
|
22325
|
-
return await this.calculateFacet(field, request, context);
|
|
22326
|
-
}
|
|
22327
|
-
// protected async calculateFacet<TField extends keyof TEntity, TValue>(
|
|
22328
|
-
// field: TField,
|
|
22329
|
-
// request: TEntitySearchParameters,
|
|
22330
|
-
// context: IAuthenticationContext<TUserContext> | undefined
|
|
22331
|
-
// ): Promise<Facet<TValue>> {
|
|
22332
|
-
// const values = await this.getRepository().distinct<TField, TValue>(field, {
|
|
22333
|
-
// ...(context ? this.buildContextFilter(context) : {}),
|
|
22334
|
-
// ...this.buildWhereClause(request),
|
|
22335
|
-
// } as any)
|
|
22336
|
-
// return {
|
|
22337
|
-
// values,
|
|
22338
|
-
// }
|
|
22339
|
-
// }
|
|
22306
|
+
async calculateStringFieldFacets(field, request, context, relations) {
|
|
22307
|
+
return await this.calculateFacet(field, request, context, relations);
|
|
22308
|
+
}
|
|
22309
|
+
async calculateNumericFieldFacets(field, request, context, relations) {
|
|
22310
|
+
return await this.calculateFacet(field, request, context, relations);
|
|
22311
|
+
}
|
|
22312
|
+
async calculateBooleanFieldFacets(field, request, context, relations) {
|
|
22313
|
+
return await this.calculateFacet(field, request, context, relations);
|
|
22314
|
+
}
|
|
22340
22315
|
getRepository() {
|
|
22341
22316
|
if (!this.repository) {
|
|
22342
22317
|
this.repository = this.services.resolveRepository();
|
|
22343
22318
|
}
|
|
22344
22319
|
return this.repository;
|
|
22345
22320
|
}
|
|
22321
|
+
buildSearchRelations(request, context) {
|
|
22322
|
+
return (request.relations ??
|
|
22323
|
+
this.getRelationsToLoad(request, context, exports.QueryBuilderOperation.Search));
|
|
22324
|
+
}
|
|
22325
|
+
buildWhere(request, context) {
|
|
22326
|
+
return this.mergeWhereClauses(context ? this.buildContextFilter(context) : {}, this.buildWhereClause(request), this.buildTextSearchClause(request));
|
|
22327
|
+
}
|
|
22328
|
+
mergeWhereClauses(...clauses) {
|
|
22329
|
+
return clauses.reduce((a, b) => this.mergeWheres(a, b));
|
|
22330
|
+
}
|
|
22331
|
+
mergeWheres(a, b) {
|
|
22332
|
+
if (Array.isArray(a) && Array.isArray(b)) {
|
|
22333
|
+
const result = [];
|
|
22334
|
+
for (const x of a) {
|
|
22335
|
+
for (const y of b) {
|
|
22336
|
+
result.push({
|
|
22337
|
+
...x,
|
|
22338
|
+
...y,
|
|
22339
|
+
});
|
|
22340
|
+
}
|
|
22341
|
+
}
|
|
22342
|
+
return result;
|
|
22343
|
+
}
|
|
22344
|
+
if (!Array.isArray(a) && !Array.isArray(b)) {
|
|
22345
|
+
return {
|
|
22346
|
+
...a,
|
|
22347
|
+
...b,
|
|
22348
|
+
};
|
|
22349
|
+
}
|
|
22350
|
+
if (Array.isArray(a) && !Array.isArray(b)) {
|
|
22351
|
+
return a.map((x) => ({
|
|
22352
|
+
...x,
|
|
22353
|
+
...b,
|
|
22354
|
+
}));
|
|
22355
|
+
}
|
|
22356
|
+
if (!Array.isArray(a) && Array.isArray(b)) {
|
|
22357
|
+
return b.map((x) => ({
|
|
22358
|
+
...a,
|
|
22359
|
+
...x,
|
|
22360
|
+
}));
|
|
22361
|
+
}
|
|
22362
|
+
return {
|
|
22363
|
+
...a,
|
|
22364
|
+
...b,
|
|
22365
|
+
};
|
|
22366
|
+
}
|
|
22346
22367
|
}
|
|
22347
22368
|
|
|
22348
22369
|
class TypeOrmRepository {
|