1
1
import { Injectable , OnModuleDestroy , Logger } from '@nestjs/common' ;
2
2
//import { SocketService } from './pgsocket.service';
3
-
3
+ import axios from 'axios' ;
4
4
import { NatsConnection , StringCodec , connect } from 'nats' ;
5
5
//import { get } from 'http';
6
6
7
7
const NATS_HOST = process . env . NATS_HOST || '' ;
8
8
const NATS_PORT = process . env . NATS_PORT || 4222 ;
9
9
const NATS_USERNAME = process . env . NATS_USERNAME || '' ;
10
10
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 || '' ;
12
12
const nats_url = NATS_HOST + ':' + NATS_PORT ;
13
13
14
14
export function getNATS ( ) : boolean {
@@ -17,28 +17,32 @@ export function getNATS(): boolean {
17
17
}
18
18
19
19
@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 ) ;
22
22
private natsClient : NatsConnection ;
23
23
24
24
async onModuleInit ( ) {
25
25
if ( ! getNATS ( ) ) {
26
26
return ;
27
27
}
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 ) ;
36
28
37
- const sc = StringCodec ( ) ;
29
+ await this . getUsers ( ) ;
38
30
39
31
( 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
+
40
43
for await ( const m of sub ) {
41
44
console . log ( `[${ sub . getProcessed ( ) } ]: ${ sc . decode ( m . data ) } ` ) ;
45
+
42
46
// await this.socketService.sendMsg(sc.decode(m.data));
43
47
}
44
48
} ) ( ) ;
@@ -48,6 +52,21 @@ export class NatsService implements OnModuleDestroy {
48
52
this . natsClient . drain ( ) ;
49
53
}
50
54
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
+
51
70
async pushTemplate (
52
71
userid : string ,
53
72
templateid : string ,
0 commit comments