| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960 |
- import { Module } from '@nestjs/common';
- import { APP_GUARD, APP_INTERCEPTOR } from '@nestjs/core';
- import path from 'path';
- import { DataImportModule } from '../data-import/data-import.module';
- import { ServiceModule } from '../service/service.module';
- import { AdminApiModule, ApiSharedModule, ShopApiModule } from './api-internal-modules';
- import { RequestContextService } from './common/request-context.service';
- import { configureGraphQLModule } from './config/configure-graphql-module';
- import { AssetInterceptor } from './middleware/asset-interceptor';
- import { AuthGuard } from './middleware/auth-guard';
- import { IdInterceptor } from './middleware/id-interceptor';
- /**
- * The ApiModule is responsible for the public API of the application. This is where requests
- * come in, are parsed and then handed over to the ServiceModule classes which take care
- * of the business logic.
- */
- @Module({
- imports: [
- ServiceModule,
- DataImportModule,
- ApiSharedModule,
- AdminApiModule,
- ShopApiModule,
- configureGraphQLModule(configService => ({
- apiType: 'shop',
- apiPath: configService.shopApiPath,
- typePaths: ['type', 'shop-api', 'common'].map(p =>
- path.join(__dirname, 'schema', p, '*.graphql'),
- ),
- resolverModule: ShopApiModule,
- })),
- configureGraphQLModule(configService => ({
- apiType: 'admin',
- apiPath: configService.adminApiPath,
- typePaths: ['type', 'admin-api', 'common'].map(p =>
- path.join(__dirname, 'schema', p, '*.graphql'),
- ),
- resolverModule: AdminApiModule,
- })),
- ],
- providers: [
- RequestContextService,
- {
- provide: APP_GUARD,
- useClass: AuthGuard,
- },
- {
- provide: APP_INTERCEPTOR,
- useClass: AssetInterceptor,
- },
- {
- provide: APP_INTERCEPTOR,
- useClass: IdInterceptor,
- },
- ],
- })
- export class ApiModule {}
|