facet.service.ts 1.3 KB

12345678910111213141516171819202122232425262728293031323334
  1. import { Injectable } from '@nestjs/common';
  2. import { InjectConnection } from '@nestjs/typeorm';
  3. import { Connection } from 'typeorm';
  4. import { PaginatedList } from '../../../shared/shared-types';
  5. import { buildListQuery } from '../common/build-list-query';
  6. import { ListQueryOptions } from '../common/common-types';
  7. import { Facet } from '../entity/facet/facet.entity';
  8. import { LanguageCode } from '../locale/language-code';
  9. import { Translated } from '../locale/locale-types';
  10. import { translateDeep } from '../locale/translate-entity';
  11. import { TranslationUpdaterService } from '../locale/translation-updater.service';
  12. @Injectable()
  13. export class FacetService {
  14. constructor(
  15. @InjectConnection() private connection: Connection,
  16. private translationUpdaterService: TranslationUpdaterService,
  17. ) {}
  18. findAll(lang: LanguageCode, options: ListQueryOptions<Facet>): Promise<PaginatedList<Translated<Facet>>> {
  19. const relations = ['values'];
  20. return buildListQuery(this.connection, Facet, options, relations)
  21. .getManyAndCount()
  22. .then(([products, totalItems]) => {
  23. const items = products.map(product => translateDeep(product, lang, ['values']));
  24. return {
  25. items,
  26. totalItems,
  27. };
  28. });
  29. }
  30. }