service.module.ts 2.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  1. import { Module, OnModuleInit } from '@nestjs/common';
  2. import { TypeOrmModule } from '@nestjs/typeorm';
  3. import { ConfigModule } from '../config/config.module';
  4. import { getConfig } from '../config/vendure-config';
  5. import { TranslationUpdaterService } from './helpers/translation-updater.service';
  6. import { AdjustmentSourceService } from './providers/adjustment-source.service';
  7. import { AdministratorService } from './providers/administrator.service';
  8. import { AssetService } from './providers/asset.service';
  9. import { AuthService } from './providers/auth.service';
  10. import { ChannelService } from './providers/channel.service';
  11. import { CustomerService } from './providers/customer.service';
  12. import { FacetValueService } from './providers/facet-value.service';
  13. import { FacetService } from './providers/facet.service';
  14. import { OrderService } from './providers/order.service';
  15. import { PasswordService } from './providers/password.service';
  16. import { ProductOptionGroupService } from './providers/product-option-group.service';
  17. import { ProductOptionService } from './providers/product-option.service';
  18. import { ProductVariantService } from './providers/product-variant.service';
  19. import { ProductService } from './providers/product.service';
  20. import { RoleService } from './providers/role.service';
  21. const exportedProviders = [
  22. AdjustmentSourceService,
  23. AdministratorService,
  24. AssetService,
  25. AuthService,
  26. ChannelService,
  27. CustomerService,
  28. FacetService,
  29. FacetValueService,
  30. OrderService,
  31. ProductOptionService,
  32. ProductOptionGroupService,
  33. ProductService,
  34. ProductVariantService,
  35. RoleService,
  36. ];
  37. /**
  38. * The ServiceModule is responsible for the service layer, i.e. accessing the database
  39. * and implementing the main business logic of the application.
  40. *
  41. * The exported providers are used in the ApiModule, which is responsible for parsing requests
  42. * into a format suitable for the service layer logic.
  43. */
  44. @Module({
  45. imports: [ConfigModule, TypeOrmModule.forRoot(getConfig().dbConnectionOptions)],
  46. providers: [...exportedProviders, PasswordService, TranslationUpdaterService],
  47. exports: exportedProviders,
  48. })
  49. export class ServiceModule implements OnModuleInit {
  50. constructor(
  51. private channelService: ChannelService,
  52. private roleService: RoleService,
  53. private administratorService: AdministratorService,
  54. ) {}
  55. async onModuleInit() {
  56. await this.channelService.initChannels();
  57. await this.roleService.initRoles();
  58. await this.administratorService.initAdministrators();
  59. }
  60. }