@punks/backend-entity-manager 0.0.164 → 0.0.165

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
@@ -448,9 +448,8 @@ class EntitiesSearchAction {
448
448
  this.services = services;
449
449
  }
450
450
  async execute(request) {
451
- const results = await this.services
452
- .resolveSearchQuery()
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,
@@ -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 result = await this.services
1864
- .resolveQueryBuilder()
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,
@@ -22294,14 +22292,19 @@ class TypeOrmQueryBuilder extends QueryBuilderBase {
22294
22292
  },
22295
22293
  });
22296
22294
  }
22297
- async calculateFacet(field, request, context) {
22295
+ async calculateFacet(field, request, context, relations) {
22298
22296
  const where = {
22299
22297
  ...(context ? this.buildContextFilter(context) : {}),
22300
22298
  ...this.buildWhereClause(request),
22301
22299
  };
22302
- const results = await this.getRepository()
22300
+ let query = this.getRepository()
22303
22301
  .getInnerRepository()
22304
- .createQueryBuilder()
22302
+ .createQueryBuilder("entity");
22303
+ // .leftJoin("entity.contact", "contact")
22304
+ for (const relation of relations?.columns ?? []) {
22305
+ query = query.leftJoin(`entity.${relation}`, relation);
22306
+ }
22307
+ const results = await query
22305
22308
  .select(field, "value")
22306
22309
  .addSelect(`COUNT(${field})`, "count")
22307
22310
  .where(where)
@@ -22315,28 +22318,15 @@ class TypeOrmQueryBuilder extends QueryBuilderBase {
22315
22318
  })),
22316
22319
  };
22317
22320
  }
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
- // }
22321
+ async calculateStringFieldFacets(field, request, context, relations) {
22322
+ return await this.calculateFacet(field, request, context, relations);
22323
+ }
22324
+ async calculateNumericFieldFacets(field, request, context, relations) {
22325
+ return await this.calculateFacet(field, request, context, relations);
22326
+ }
22327
+ async calculateBooleanFieldFacets(field, request, context, relations) {
22328
+ return await this.calculateFacet(field, request, context, relations);
22329
+ }
22340
22330
  getRepository() {
22341
22331
  if (!this.repository) {
22342
22332
  this.repository = this.services.resolveRepository();