Skip to content

Commit 618c0ef

Browse files
committed
feat: add get user notification
1 parent 92fabe9 commit 618c0ef

File tree

2 files changed

+34
-15
lines changed

2 files changed

+34
-15
lines changed

packages/api/src/notification/NatsService.ts renamed to packages/api/src/notification/UsersService.ts

Lines changed: 32 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,14 @@
11
import { Injectable, OnModuleDestroy, Logger } from '@nestjs/common';
22
//import { SocketService } from './pgsocket.service';
3-
3+
import axios from 'axios';
44
import { NatsConnection, StringCodec, connect } from 'nats';
55
//import { get } from 'http';
66

77
const NATS_HOST = process.env.NATS_HOST || '';
88
const NATS_PORT = process.env.NATS_PORT || 4222;
99
const NATS_USERNAME = process.env.NATS_USERNAME || '';
1010
const NATS_PASSWORD = process.env.NATS_PASSWORD || '';
11-
const NATS_SUBJECT = process.env.NATS_SUBJECT || '';
11+
const NATS_SUBJECT_SYSTEM_USERS = process.env.NATS_SUBJECT_SYSTEM_USERS || '';
1212
const nats_url = NATS_HOST + ':' + NATS_PORT;
1313

1414
export function getNATS(): boolean {
@@ -17,28 +17,32 @@ export function getNATS(): boolean {
1717
}
1818

1919
@Injectable()
20-
export class NatsService implements OnModuleDestroy {
21-
private readonly logger = new Logger(NatsService.name);
20+
export class UsersService implements OnModuleDestroy {
21+
private readonly logger = new Logger(UsersService.name);
2222
private natsClient: NatsConnection;
2323

2424
async onModuleInit() {
2525
if (!getNATS()) {
2626
return;
2727
}
28-
console.log('nats username:', NATS_USERNAME);
29-
console.log('nats password:', NATS_PASSWORD);
30-
this.natsClient = await connect({
31-
servers: nats_url,
32-
user: NATS_USERNAME,
33-
pass: NATS_PASSWORD,
34-
});
35-
const sub = this.natsClient.subscribe(NATS_SUBJECT);
3628

37-
const sc = StringCodec();
29+
await this.getUsers();
3830

3931
(async () => {
32+
console.log('nats username:', NATS_USERNAME);
33+
console.log('nats password:', NATS_PASSWORD);
34+
this.natsClient = await connect({
35+
servers: nats_url,
36+
user: NATS_USERNAME,
37+
pass: NATS_PASSWORD,
38+
});
39+
const sub = this.natsClient.subscribe(NATS_SUBJECT_SYSTEM_USERS);
40+
41+
const sc = StringCodec();
42+
4043
for await (const m of sub) {
4144
console.log(`[${sub.getProcessed()}]: ${sc.decode(m.data)}`);
45+
4246
// await this.socketService.sendMsg(sc.decode(m.data));
4347
}
4448
})();
@@ -48,6 +52,21 @@ export class NatsService implements OnModuleDestroy {
4852
this.natsClient.drain();
4953
}
5054

55+
async getUsers() {
56+
try {
57+
const response: any = await axios.get(
58+
'http://ks-apiserver.kubesphere-system/kapis/iam.kubesphere.io/v1alpha2/lldap/users',
59+
);
60+
if (response.status !== 200) {
61+
throw new Error(response.statusText);
62+
}
63+
64+
console.log('getUsers', response.data);
65+
} catch (e) {
66+
this.logger.error(e);
67+
}
68+
}
69+
5170
async pushTemplate(
5271
userid: string,
5372
templateid: string,
Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import { Module } from '@nestjs/common';
22
import { TemplateService } from './template.service';
3-
import { NatsService } from './NatsService';
3+
import { UsersService } from './UsersService';
44
import { TemplateContentService } from './template.content.service';
55
import { NotificationController } from './notification.controller';
66
import { PrismaModule } from '../prisma/prisma.module';
@@ -10,6 +10,6 @@ import { SystemController } from './system.controller';
1010
@Module({
1111
imports: [PrismaModule, ScheduleModule.forRoot()],
1212
controllers: [NotificationController, SystemController],
13-
providers: [TemplateService, TemplateContentService, NatsService],
13+
providers: [TemplateService, TemplateContentService, UsersService],
1414
})
1515
export class NotificationModule {}

0 commit comments

Comments
 (0)