@boarteam/boar-pack-users-backend 5.3.0 → 5.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@boarteam/boar-pack-users-backend",
3
- "version": "5.3.0",
3
+ "version": "5.4.0",
4
4
  "description": "NestJS Users module including permissions system, authentication strategies etc",
5
5
  "main": "src/index",
6
6
  "files": [
@@ -60,5 +60,5 @@
60
60
  "yalc:push": "yalc push",
61
61
  "gen-types": "SWAGGER=true JWT_SECRET=swagger nest start"
62
62
  },
63
- "gitHead": "f85e185b5cc02ed4dad0c5da9b2f71759035e9af"
63
+ "gitHead": "acc7ba1cd1fa8a4972efed9ece60a50740370396"
64
64
  }
@@ -1,4 +1,4 @@
1
- import { Column, CreateDateColumn, Entity, ManyToOne, PrimaryGeneratedColumn, UpdateDateColumn, } from 'typeorm';
1
+ import { Column, CreateDateColumn, Entity, Index, ManyToOne, PrimaryGeneratedColumn, UpdateDateColumn, } from 'typeorm';
2
2
  import { User } from "../../users";
3
3
 
4
4
  export enum LogType {
@@ -113,6 +113,7 @@ export class EventLog {
113
113
  })
114
114
  statusCode: number | null;
115
115
 
116
+ @Index()
116
117
  @Column({
117
118
  default: 'main'
118
119
  })
@@ -65,4 +65,16 @@ export class EventLogsController implements CrudController<EventLog>{
65
65
  const end = query.endTime ? new Date(query.endTime) : undefined;
66
66
  return this.service.getTimeline(start, end, query.timezone);
67
67
  }
68
+
69
+ @CheckPolicies(new ViewEventLogsPolicy())
70
+ @Get('service-names')
71
+ @ApiOkResponse({
72
+ schema: {
73
+ type: 'array',
74
+ items: { type: 'string' },
75
+ },
76
+ })
77
+ async getServiceNames(): Promise<string[]> {
78
+ return this.service.getServiceNames();
79
+ }
68
80
  }
@@ -98,7 +98,8 @@ export class EventLogsService extends TypeOrmCrudService<EventLog> {
98
98
  return request?.[EventLogsService.requestHandled];
99
99
  }
100
100
 
101
- operationalLog(eventLog: Partial<EventLog>): void {
101
+ // TODO: Remove async in the next major version (breaking change)
102
+ async operationalLog(eventLog: Partial<EventLog>): Promise<void> {
102
103
  this.logsStore.push({
103
104
  logLevel: LogLevel.INFO,
104
105
  userRole: UserRole.SYSTEM,
@@ -162,6 +163,15 @@ export class EventLogsService extends TypeOrmCrudService<EventLog> {
162
163
  ]);
163
164
  }
164
165
 
166
+ async getServiceNames(): Promise<string[]> {
167
+ const result = await this.repo
168
+ .createQueryBuilder('event_logs')
169
+ .select('event_logs.service')
170
+ .distinctOn(['service'])
171
+ .getMany();
172
+ return result.map((data) => data.service);
173
+ }
174
+
165
175
  private async getOldestLogDate(): Promise<Date> {
166
176
  const oldestLog = await this.repo.createQueryBuilder('event_log')
167
177
  .select('MIN(event_log.createdAt)', 'min')