Skip to content

Commit 499d2e4

Browse files
committed
Merge branch 'main' into backend_refactoring
2 parents 33c70c0 + 5aa644e commit 499d2e4

39 files changed

Lines changed: 1868 additions & 10 deletions

backend/src/app.module.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,7 @@ import { GetHelloUseCase } from './use-cases-app/get-hello.use.case.js';
3939
import { ThrottlerModule, ThrottlerGuard } from '@nestjs/throttler';
4040
import { SharedJobsModule } from './entities/shared-jobs/shared-jobs.module.js';
4141
import { TableCategoriesModule } from './entities/table-categories/table-categories.module.js';
42+
import { SignInAuditModule } from './entities/user-sign-in-audit/sign-in-audit.module.js';
4243

4344
@Module({
4445
imports: [
@@ -81,6 +82,7 @@ import { TableCategoriesModule } from './entities/table-categories/table-categor
8182
LoggingModule,
8283
SharedJobsModule,
8384
TableCategoriesModule,
85+
SignInAuditModule,
8486
],
8587
controllers: [AppController],
8688
providers: [

backend/src/common/application/global-database-context.interface.ts

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,8 @@ import { IDatabaseContext } from '../database-context.interface.js';
4848
import { TableCategoriesEntity } from '../../entities/table-categories/table-categories.entity.js';
4949
import { ITableCategoriesCustomRepository } from '../../entities/table-categories/repository/table-categories-repository.interface.js';
5050
import { ConnectionPropertiesEntity } from '../../entities/connection-properties/connection-properties.entity.js';
51+
import { SignInAuditEntity } from '../../entities/user-sign-in-audit/sign-in-audit.entity.js';
52+
import { ISignInAuditRepository } from '../../entities/user-sign-in-audit/repository/sign-in-audit-repository.interface.js';
5153

5254
export interface IGlobalDatabaseContext extends IDatabaseContext {
5355
userRepository: Repository<UserEntity> & IUserRepository;
@@ -83,4 +85,5 @@ export interface IGlobalDatabaseContext extends IDatabaseContext {
8385
tableFiltersRepository: Repository<TableFiltersEntity> & ITableFiltersCustomRepository;
8486
aiResponsesToUserRepository: Repository<AiResponsesToUserEntity> & IAiResponsesToUserRepository;
8587
tableCategoriesRepository: Repository<TableCategoriesEntity> & ITableCategoriesCustomRepository;
88+
signInAuditRepository: Repository<SignInAuditEntity> & ISignInAuditRepository;
8689
}

backend/src/common/application/global-database-context.ts

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -90,6 +90,9 @@ import { aiResponsesToUserRepositoryExtension } from '../../entities/ai/ai-data-
9090
import { TableCategoriesEntity } from '../../entities/table-categories/table-categories.entity.js';
9191
import { ITableCategoriesCustomRepository } from '../../entities/table-categories/repository/table-categories-repository.interface.js';
9292
import { tableCategoriesCustomRepositoryExtension } from '../../entities/table-categories/repository/table-categories-repository.extension.js';
93+
import { SignInAuditEntity } from '../../entities/user-sign-in-audit/sign-in-audit.entity.js';
94+
import { ISignInAuditRepository } from '../../entities/user-sign-in-audit/repository/sign-in-audit-repository.interface.js';
95+
import { signInAuditCustomRepositoryExtension } from '../../entities/user-sign-in-audit/repository/sign-in-audit-custom-repository-extension.js';
9396

9497
@Injectable({ scope: Scope.REQUEST })
9598
export class GlobalDatabaseContext implements IGlobalDatabaseContext {
@@ -128,6 +131,7 @@ export class GlobalDatabaseContext implements IGlobalDatabaseContext {
128131
private _tableFiltersRepository: Repository<TableFiltersEntity> & ITableFiltersCustomRepository;
129132
private _aiResponsesToUserRepository: Repository<AiResponsesToUserEntity> & IAiResponsesToUserRepository;
130133
private _tableCategoriesRepository: Repository<TableCategoriesEntity> & ITableCategoriesCustomRepository;
134+
private _signInAuditRepository: Repository<SignInAuditEntity> & ISignInAuditRepository;
131135

132136
public constructor(
133137
@Inject(BaseType.DATA_SOURCE)
@@ -216,6 +220,9 @@ export class GlobalDatabaseContext implements IGlobalDatabaseContext {
216220
this._tableCategoriesRepository = this.appDataSource
217221
.getRepository(TableCategoriesEntity)
218222
.extend(tableCategoriesCustomRepositoryExtension);
223+
this._signInAuditRepository = this.appDataSource
224+
.getRepository(SignInAuditEntity)
225+
.extend(signInAuditCustomRepositoryExtension);
219226
}
220227

221228
public get userRepository(): Repository<UserEntity> & IUserRepository {
@@ -350,6 +357,10 @@ export class GlobalDatabaseContext implements IGlobalDatabaseContext {
350357
return this._tableCategoriesRepository;
351358
}
352359

360+
public get signInAuditRepository(): Repository<SignInAuditEntity> & ISignInAuditRepository {
361+
return this._signInAuditRepository;
362+
}
363+
353364
public startTransaction(): Promise<void> {
354365
this._queryRunner = this.appDataSource.createQueryRunner();
355366
this._queryRunner.startTransaction();

backend/src/common/data-injection.tokens.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -164,4 +164,6 @@ export enum UseCaseType {
164164

165165
CREATE_UPDATE_TABLE_CATEGORIES = 'CREATE_UPDATE_TABLE_CATEGORIES',
166166
FIND_TABLE_CATEGORIES = 'FIND_TABLE_CATEGORIES',
167+
168+
FIND_SIGN_IN_AUDIT_LOGS = 'FIND_SIGN_IN_AUDIT_LOGS',
167169
}
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
import { SignInMethodEnum } from '../enums/sign-in-method.enum.js';
2+
import { SignInStatusEnum } from '../enums/sign-in-status.enum.js';
3+
4+
export class CreateSignInAuditRecordDs {
5+
email: string;
6+
userId?: string;
7+
status: SignInStatusEnum;
8+
signInMethod: SignInMethodEnum;
9+
ipAddress?: string;
10+
userAgent?: string;
11+
failureReason?: string;
12+
}
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
import { SignInMethodEnum } from '../enums/sign-in-method.enum.js';
2+
import { SignInStatusEnum } from '../enums/sign-in-status.enum.js';
3+
4+
export class FindSignInAuditLogsDs {
5+
userId: string;
6+
companyId: string;
7+
query: {
8+
order?: string;
9+
page?: number;
10+
perPage?: number;
11+
dateFrom?: string;
12+
dateTo?: string;
13+
email?: string;
14+
status?: SignInStatusEnum;
15+
signInMethod?: SignInMethodEnum;
16+
};
17+
}
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
import { ApiProperty } from '@nestjs/swagger';
2+
import { PaginationDs } from '../../table/application/data-structures/pagination.ds.js';
3+
import { FoundSignInAuditRecordDs } from './found-sign-in-audit-record.ds.js';
4+
5+
export class FoundSignInAuditLogsDs {
6+
@ApiProperty({ isArray: true, type: FoundSignInAuditRecordDs })
7+
logs: Array<FoundSignInAuditRecordDs>;
8+
9+
@ApiProperty({ type: PaginationDs })
10+
pagination: PaginationDs;
11+
}
Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
import { ApiProperty } from '@nestjs/swagger';
2+
import { SignInMethodEnum } from '../enums/sign-in-method.enum.js';
3+
import { SignInStatusEnum } from '../enums/sign-in-status.enum.js';
4+
5+
export class FoundSignInAuditRecordDs {
6+
@ApiProperty()
7+
id: string;
8+
9+
@ApiProperty()
10+
email: string;
11+
12+
@ApiProperty({ enum: SignInStatusEnum })
13+
status: SignInStatusEnum;
14+
15+
@ApiProperty({ enum: SignInMethodEnum })
16+
signInMethod: SignInMethodEnum;
17+
18+
@ApiProperty()
19+
ipAddress: string;
20+
21+
@ApiProperty()
22+
userAgent: string;
23+
24+
@ApiProperty()
25+
failureReason: string;
26+
27+
@ApiProperty()
28+
createdAt: Date;
29+
30+
@ApiProperty()
31+
userId: string;
32+
}
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
export * from './create-sign-in-audit-record.ds.js';
2+
export * from './found-sign-in-audit-record.ds.js';
3+
export * from './found-sign-in-audit-logs.ds.js';
4+
export * from './find-sign-in-audit-logs.ds.js';
Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
export * from './sign-in-status.enum.js';
2+
export * from './sign-in-method.enum.js';

0 commit comments

Comments
 (0)