Skip to content

Commit 198c83d

Browse files
committed
fixed subdomain issue
1 parent bb57ce0 commit 198c83d

File tree

11 files changed

+193
-30
lines changed

11 files changed

+193
-30
lines changed

src/app.module.ts

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -33,8 +33,4 @@ import { UsageModule } from './usage/usage.module';
3333
controllers: [],
3434
providers: [{ provide: APP_FILTER, useClass: AllExceptionsFilter }],
3535
})
36-
export class AppModule implements NestModule {
37-
configure(consumer: MiddlewareConsumer): void {
38-
consumer.apply(AppLoggerMiddleware).forRoutes('*');
39-
}
40-
}
36+
export class AppModule {}

src/credential/credential.module.ts

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,8 @@ import { StatusService } from 'src/status/status.service';
2222
import { TxnStatusRepository } from 'src/status/repository/status.repository';
2323
import { statusProviders } from 'src/status/providers/registration-status.provider';
2424
import { CreditManagerModule } from 'src/credit-manager/credit-manager.module';
25+
import { AppLoggerMiddleware } from 'src/utils/interceptor/http-interceptor';
26+
import { LogModule } from 'src/log/log.module';
2527

2628
@Module({
2729
imports: [
@@ -31,6 +33,7 @@ import { CreditManagerModule } from 'src/credit-manager/credit-manager.module';
3133
TxSendModuleModule,
3234
StatusModule,
3335
CreditManagerModule,
36+
LogModule,
3437
],
3538
controllers: [CredentialController],
3639
providers: [
@@ -55,5 +58,6 @@ export class CredentialModule implements NestModule {
5558
{ path: 'credential/:credentialId', method: RequestMethod.GET },
5659
)
5760
.forRoutes(CredentialController);
61+
consumer.apply(AppLoggerMiddleware).forRoutes(CredentialController);
5862
}
5963
}

src/credit-manager/credit-manager.module.ts

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import { Module } from '@nestjs/common';
1+
import { MiddlewareConsumer, Module, NestModule } from '@nestjs/common';
22
import { CreditManagerController } from './controllers/credit-manager.controller';
33
import { creditSchemaProviders } from './schema/credit.provider';
44
import { CreditService } from './services/credit-manager.service';
@@ -9,6 +9,7 @@ import { CreditManagerService } from './managers/credit-manager.service';
99
import { ApiCreditService } from './services/api-credit.service';
1010
import { StorageCreditService } from './services/storage-credit.service';
1111
import { AttestationCreditService } from './services/attestation-credit.service';
12+
import { WhitelistSSICorsMiddleware } from 'src/utils/middleware/cors.middleware';
1213

1314
@Module({
1415
imports: [],
@@ -26,4 +27,10 @@ import { AttestationCreditService } from './services/attestation-credit.service'
2627
],
2728
exports: [CreditService, CreditManagerRepository, CreditManagerService],
2829
})
29-
export class CreditManagerModule {}
30+
export class CreditManagerModule implements NestModule {
31+
configure(consumer: MiddlewareConsumer) {
32+
consumer
33+
.apply(WhitelistSSICorsMiddleware)
34+
.forRoutes(CreditManagerController);
35+
}
36+
}

src/did/did.module.ts

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,12 +25,15 @@ import { didProviders } from './providers/did.provider';
2525
import { JwtStrategy } from '../utils/jwt.strategy';
2626
import { TxSendModuleModule } from 'src/tx-send-module/tx-send-module.module';
2727
import { CreditManagerModule } from 'src/credit-manager/credit-manager.module';
28+
import { AppLoggerMiddleware } from 'src/utils/interceptor/http-interceptor';
29+
import { LogModule } from 'src/log/log.module';
2830
@Module({
2931
imports: [
3032
EdvModule,
3133
HidWalletModule,
3234
TxSendModuleModule,
3335
CreditManagerModule,
36+
LogModule,
3437
],
3538
controllers: [DidController],
3639
providers: [
@@ -61,5 +64,6 @@ export class DidModule implements NestModule {
6164
{ path: 'did/:did', method: RequestMethod.GET },
6265
)
6366
.forRoutes(DidController);
67+
consumer.apply(AppLoggerMiddleware).forRoutes(DidController);
6468
}
6569
}

src/did/services/did.service.ts

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@ export class DidService {
4343
private readonly didSSIService: DidSSIService,
4444
private readonly config: ConfigService,
4545
private readonly txnService: TxSendModuleService,
46-
) {}
46+
) { }
4747

4848
async checkAllowence(address) {
4949
const url =
@@ -100,22 +100,22 @@ export class DidService {
100100
if (!address) {
101101
throw new BadRequestException([
102102
'options.walletAddress is not passed , required for keyType ' +
103-
IKeyType.EcdsaSecp256k1RecoveryMethod2020,
103+
IKeyType.EcdsaSecp256k1RecoveryMethod2020,
104104
]);
105105
}
106106
if (!chainId) {
107107
throw new BadRequestException([
108108
'options.chainId is not passed , required for keyType ' +
109-
IKeyType.EcdsaSecp256k1RecoveryMethod2020,
109+
IKeyType.EcdsaSecp256k1RecoveryMethod2020,
110110
]);
111111
}
112112

113113
if (register === true) {
114114
throw new BadRequestException([
115115
'options.register is true for keyType ' +
116-
IKeyType.EcdsaSecp256k1RecoveryMethod2020,
116+
IKeyType.EcdsaSecp256k1RecoveryMethod2020,
117117
IKeyType.EcdsaSecp256k1RecoveryMethod2020 +
118-
' doesnot support register without signature being passed',
118+
' doesnot support register without signature being passed',
119119
'options.register:false is strongly recomended',
120120
]);
121121
}
@@ -275,7 +275,7 @@ export class DidService {
275275
if (!insertedDoc) {
276276
throw new Error(
277277
'Could not insert document for userCredential.walletAddress' +
278-
userCredential.walletAddress,
278+
userCredential.walletAddress,
279279
);
280280
}
281281
const { id: userKMSId } = insertedDoc;
@@ -432,7 +432,7 @@ export class DidService {
432432
if (!insertedDoc) {
433433
throw new Error(
434434
'Could not insert document for userCredential.walletAddress' +
435-
userCredential.walletAddress,
435+
userCredential.walletAddress,
436436
);
437437
}
438438
const { id: userKMSId } = insertedDoc;

src/presentation/presentation.module.ts

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,9 +24,11 @@ import { WhitelistSSICorsMiddleware } from 'src/utils/middleware/cors.middleware
2424
import { TrimMiddleware } from 'src/utils/middleware/trim.middleware';
2525
import { presentationTemplateProviders } from './providers/presentation.provider';
2626
import { databaseProviders } from '../mongoose/tenant-mongoose-connections';
27+
import { AppLoggerMiddleware } from 'src/utils/interceptor/http-interceptor';
28+
import { LogModule } from 'src/log/log.module';
2729

2830
@Module({
29-
imports: [DidModule],
31+
imports: [DidModule, LogModule],
3032
controllers: [PresentationTempleteController, PresentationController],
3133
providers: [
3234
PresentationService,
@@ -53,5 +55,8 @@ export class PresentationModule implements NestModule {
5355
{ path: 'presentation/template', method: RequestMethod.DELETE },
5456
)
5557
.forRoutes(PresentationTempleteController, PresentationController);
58+
consumer
59+
.apply(AppLoggerMiddleware)
60+
.forRoutes(PresentationTempleteController, PresentationController);
5661
}
5762
}

src/schema/schema.module.ts

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,9 +21,17 @@ import { StatusModule } from 'src/status/status.module';
2121
import { TxnStatusRepository } from 'src/status/repository/status.repository';
2222
import { statusProviders } from 'src/status/providers/registration-status.provider';
2323
import { CreditManagerModule } from 'src/credit-manager/credit-manager.module';
24+
import { AppLoggerMiddleware } from 'src/utils/interceptor/http-interceptor';
25+
import { LogModule } from 'src/log/log.module';
2426

2527
@Module({
26-
imports: [DidModule, TxSendModuleModule, StatusModule, CreditManagerModule],
28+
imports: [
29+
DidModule,
30+
TxSendModuleModule,
31+
StatusModule,
32+
CreditManagerModule,
33+
LogModule,
34+
],
2735
controllers: [SchemaController],
2836
providers: [
2937
SchemaService,
@@ -51,5 +59,6 @@ export class SchemaModule implements NestModule {
5159
{ path: 'schema/:schemaId', method: RequestMethod.GET },
5260
)
5361
.forRoutes(SchemaController);
62+
consumer.apply(AppLoggerMiddleware).forRoutes(SchemaController);
5463
}
5564
}

src/usage/controllers/usage.controller.ts

Lines changed: 29 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -10,14 +10,23 @@ import { AllExceptionsFilter } from 'src/utils/utils';
1010
import {
1111
ApiBadRequestResponse,
1212
ApiBearerAuth,
13+
ApiNotFoundResponse,
1314
ApiOkResponse,
1415
ApiQuery,
1516
ApiTags,
1617
ApiUnauthorizedResponse,
1718
} from '@nestjs/swagger';
1819
import { LogService } from 'src/log/services/log.service';
1920
import { AuthGuard } from '@nestjs/passport';
20-
import { FetchUsageRespDetail } from '../dto/create-usage.dto';
21+
import {
22+
FetchDetailUsageDto,
23+
FetchUsageRespDetail,
24+
} from '../dto/create-usage.dto';
25+
import {
26+
UsageError,
27+
UsageNotFoundError,
28+
UsageUnAuthorizeError,
29+
} from '../dto/error-usage.dto';
2130
@UseFilters(AllExceptionsFilter)
2231
@ApiTags('Utilities')
2332
@ApiBearerAuth('Authorization')
@@ -32,12 +41,16 @@ export class UsageController {
3241
type: FetchUsageRespDetail,
3342
})
3443
@ApiBadRequestResponse({
35-
description: 'Error has occurred at the time sending verification result',
36-
// type: ResultErrorResponse,
44+
description: 'Error has occurred at the time of fething usage detail',
45+
type: UsageError,
46+
})
47+
@ApiNotFoundResponse({
48+
description: 'No usage detail found',
49+
type: UsageNotFoundError,
3750
})
3851
@ApiUnauthorizedResponse({
3952
description: 'Authorization token is invalid or expired.',
40-
// type: ResultUnauthorizationErrorResponse,
53+
type: UsageUnAuthorizeError,
4154
})
4255
@ApiQuery({
4356
name: 'serviceId',
@@ -58,8 +71,8 @@ export class UsageController {
5871
@Query('serviceId') appIdParam: string,
5972
@Query('startDate') startDateParam: Date,
6073
@Query('endDate') endDateParam: Date,
61-
@Req() req, // : Promise<UsageResponseDto>
62-
) {
74+
@Req() req,
75+
): Promise<FetchUsageRespDetail> {
6376
let appId;
6477
if (!appIdParam) {
6578
appId = req.app.appId;
@@ -104,15 +117,19 @@ export class UsageController {
104117
@Get('/detail')
105118
@ApiOkResponse({
106119
description: 'Detail of api call made',
107-
// type: FormatedUsageSessionDetailResp,
120+
type: FetchDetailUsageDto,
108121
})
109122
@ApiBadRequestResponse({
110-
description: 'Error has occurred at the time sending verification result',
111-
// type: ResultErrorResponse,
123+
description: 'Error has occurred at the time of fething usage detail',
124+
type: UsageError,
125+
})
126+
@ApiNotFoundResponse({
127+
description: 'No usage detail found',
128+
type: UsageNotFoundError,
112129
})
113130
@ApiUnauthorizedResponse({
114131
description: 'Authorization token is invalid or expired.',
115-
// type: ResultUnauthorizationErrorResponse,
132+
type: UsageUnAuthorizeError,
116133
})
117134
@ApiQuery({
118135
name: 'serviceId',
@@ -133,8 +150,8 @@ export class UsageController {
133150
@Query('serviceId') appIdParam: string,
134151
@Query('startDate') startDateParam: Date,
135152
@Query('endDate') endDateParam: Date,
136-
@Req() req, // : Promise<UsageResponseDto>
137-
) {
153+
@Req() req,
154+
): Promise<FetchDetailUsageDto> {
138155
let appId;
139156
if (!appIdParam) {
140157
appId = req.app.appId;

src/usage/dto/create-usage.dto.ts

Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,7 @@ export class ServiceDetails {
4949
})
5050
offchainAmount: number;
5151
}
52+
5253
export class FetchUsageRespDetail {
5354
@ApiProperty({
5455
name: 'startDate',
@@ -72,3 +73,48 @@ export class FetchUsageRespDetail {
7273
@ValidateNested({ each: true })
7374
serviceDetails: ServiceDetails;
7475
}
76+
export class DetailedServiceUsage {
77+
@ApiProperty({
78+
name: 'apiPath',
79+
description: 'Api path',
80+
example: '/api/v1/credential?page=1&limit=100',
81+
})
82+
apiPath: string;
83+
84+
@ApiProperty({
85+
name: 'quantity',
86+
description: 'Number of api call for specific path.',
87+
example: 4,
88+
})
89+
quantity: number;
90+
91+
@ApiProperty({
92+
name: 'data',
93+
description: 'detailed date wise data and quantity',
94+
example: { '2025-03-07': 4 },
95+
})
96+
data: object;
97+
}
98+
export class FetchDetailUsageDto {
99+
@ApiProperty({
100+
name: 'startDate',
101+
description: 'Date from where usage detail is to be fetched',
102+
example: '2025-02-28T18:30:00.000Z',
103+
})
104+
startDate: Date;
105+
@ApiProperty({
106+
name: 'endDate',
107+
description: 'Date till which we have to fetch detail',
108+
example: '2025-03-07T04:28:10.362Z',
109+
})
110+
endDate: Date;
111+
@ApiProperty({
112+
name: 'serviceDetails',
113+
description: 'Detailed service description',
114+
type: DetailedServiceUsage,
115+
isArray: true,
116+
})
117+
@Type(() => DetailedServiceUsage)
118+
@ValidateNested({ each: true })
119+
serviceDetails: DetailedServiceUsage;
120+
}

0 commit comments

Comments
 (0)