@punks/backend-entity-manager 0.0.165 → 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 CHANGED
@@ -632,7 +632,7 @@ class EntitiesDeleteCommand {
632
632
  return undefined;
633
633
  }
634
634
  const contextService = this.services.resolveAuthenticationContextProvider();
635
- return await contextService.getContext();
635
+ return await contextService?.getContext();
636
636
  }
637
637
  async authorize() {
638
638
  const authorization = this.services.resolveAuthorizationMiddleware();
@@ -1722,7 +1722,7 @@ class EntitiesCountQuery {
1722
1722
  return undefined;
1723
1723
  }
1724
1724
  const contextService = this.services.resolveAuthenticationContextProvider();
1725
- return await contextService.getContext();
1725
+ return await contextService?.getContext();
1726
1726
  }
1727
1727
  async authorizeSearch(context) {
1728
1728
  const authorization = this.services.resolveAuthorizationMiddleware();
@@ -1753,7 +1753,7 @@ class EntityExistsQuery {
1753
1753
  return undefined;
1754
1754
  }
1755
1755
  const contextService = this.services.resolveAuthenticationContextProvider();
1756
- return await contextService.getContext();
1756
+ return await contextService?.getContext();
1757
1757
  }
1758
1758
  async authorizeSearch(context) {
1759
1759
  const authorization = this.services.resolveAuthorizationMiddleware();
@@ -1927,7 +1927,7 @@ class EntityVersionsSearchQuery {
1927
1927
  return undefined;
1928
1928
  }
1929
1929
  const contextService = this.services.resolveAuthenticationContextProvider();
1930
- return await contextService.getContext();
1930
+ return await contextService?.getContext();
1931
1931
  }
1932
1932
  async authorizeSearch(context) {
1933
1933
  const authorization = this.services.resolveAuthorizationMiddleware();
@@ -22220,10 +22220,7 @@ class TypeOrmQueryBuilder extends QueryBuilderBase {
22220
22220
  const request = {
22221
22221
  filters,
22222
22222
  };
22223
- return await this.getRepository().deleteBy({
22224
- ...(context ? this.buildContextFilter(context) : {}),
22225
- ...this.buildWhereClause(request),
22226
- });
22223
+ return await this.getRepository().deleteBy(this.buildWhere(request, context));
22227
22224
  }
22228
22225
  async find(request, context) {
22229
22226
  const results = await this.findPagedQueryResults({
@@ -22255,20 +22252,13 @@ class TypeOrmQueryBuilder extends QueryBuilderBase {
22255
22252
  }
22256
22253
  async getFieldDistinctValues(field, request, context) {
22257
22254
  return await this.getRepository().distinct(field, {
22258
- where: {
22259
- ...(context ? this.buildContextFilter(context) : {}),
22260
- ...this.buildWhereClause(request),
22261
- },
22255
+ where: this.buildWhere(request, context),
22262
22256
  });
22263
22257
  }
22264
22258
  async findPagedQueryResults(request, context) {
22265
22259
  return await this.getRepository().find({
22266
- where: {
22267
- ...(context ? this.buildContextFilter(context) : {}),
22268
- ...this.buildWhereClause(request),
22269
- },
22270
- relations: request.relations ??
22271
- this.getRelationsToLoad(request, context, exports.QueryBuilderOperation.Search),
22260
+ where: this.buildWhere(request, context),
22261
+ relations: this.buildSearchRelations(request, context),
22272
22262
  order: this.buildSortingClause(request),
22273
22263
  ...this.buildPagingParameters(request),
22274
22264
  });
@@ -22286,28 +22276,23 @@ class TypeOrmQueryBuilder extends QueryBuilderBase {
22286
22276
  }
22287
22277
  async countQueryResults(request, context) {
22288
22278
  return await this.getRepository().count({
22289
- where: {
22290
- ...(context ? this.buildContextFilter(context) : {}),
22291
- ...this.buildWhereClause(request),
22292
- },
22279
+ where: this.buildWhere(request, context),
22293
22280
  });
22294
22281
  }
22282
+ buildTextSearchClause(request) {
22283
+ return {};
22284
+ }
22295
22285
  async calculateFacet(field, request, context, relations) {
22296
- const where = {
22297
- ...(context ? this.buildContextFilter(context) : {}),
22298
- ...this.buildWhereClause(request),
22299
- };
22300
22286
  let query = this.getRepository()
22301
22287
  .getInnerRepository()
22302
22288
  .createQueryBuilder("entity");
22303
- // .leftJoin("entity.contact", "contact")
22304
22289
  for (const relation of relations?.columns ?? []) {
22305
22290
  query = query.leftJoin(`entity.${relation}`, relation);
22306
22291
  }
22307
22292
  const results = await query
22308
22293
  .select(field, "value")
22309
22294
  .addSelect(`COUNT(${field})`, "count")
22310
- .where(where)
22295
+ .where(this.buildWhere(request, context))
22311
22296
  .addGroupBy(field)
22312
22297
  .orderBy(field)
22313
22298
  .getRawMany();
@@ -22333,6 +22318,52 @@ class TypeOrmQueryBuilder extends QueryBuilderBase {
22333
22318
  }
22334
22319
  return this.repository;
22335
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
+ }
22336
22367
  }
22337
22368
 
22338
22369
  class TypeOrmRepository {