Repository navigation
Expand file tree
/
Copy pathfeature_flag.module.ts
More file actions
60 lines (58 loc) · 1.74 KB
/
Copy pathfeature_flag.module.ts
File metadata and controls
60 lines (58 loc) · 1.74 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
import { MiddlewareConsumer, Module, NestModule } from '@nestjs/common';
import { ConfigModule } from '@nestjs/config';
import { ClientsModule, Transport } from '@nestjs/microservices';
import { join } from 'path';
import {
ApiKeyProto,
ApiKeyProtoFile,
FeatureFlagProto,
FeatureFlagProtoFile,
JwtProto,
JwtProtoFile,
} from 'juno-proto';
import { ApiKeyMiddleware } from 'src/middleware/api_key.middleware';
import { FeatureFlagController } from './feature_flag.controller';
const { API_KEY_SERVICE_NAME, JUNO_API_KEY_PACKAGE_NAME } = ApiKeyProto;
const { JWT_SERVICE_NAME, JUNO_JWT_PACKAGE_NAME } = JwtProto;
@Module({
imports: [
ConfigModule.forRoot({
envFilePath: join(__dirname, '../../../../../.env.local'),
}),
ClientsModule.register([
{
name: API_KEY_SERVICE_NAME,
transport: Transport.GRPC,
options: {
url: process.env.AUTH_SERVICE_ADDR,
package: JUNO_API_KEY_PACKAGE_NAME,
protoPath: ApiKeyProtoFile,
},
},
{
name: JWT_SERVICE_NAME,
transport: Transport.GRPC,
options: {
url: process.env.AUTH_SERVICE_ADDR,
package: JUNO_JWT_PACKAGE_NAME,
protoPath: JwtProtoFile,
},
},
{
name: FeatureFlagProto.FEATURE_FLAG_SERVICE_NAME,
transport: Transport.GRPC,
options: {
url: process.env.DB_SERVICE_ADDR,
package: FeatureFlagProto.JUNO_FEATURE_FLAG_PACKAGE_NAME,
protoPath: FeatureFlagProtoFile,
},
},
]),
],
controllers: [FeatureFlagController],
})
export class FeatureFlagModule implements NestModule {
configure(consumer: MiddlewareConsumer) {
consumer.apply(ApiKeyMiddleware).forRoutes('feature_flag*');
}
}