Skip to content

Commit 97dc921

Browse files
committed
feat: Online users via gRPC endpoint
1 parent aee39f8 commit 97dc921

File tree

4 files changed

+417
-11
lines changed

4 files changed

+417
-11
lines changed

src/app/users/online/online.component.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ <h3 class="modal-title" i18n>Online</h3>
44
<a class="close" (click)="activeModal.dismiss()">×</a>
55
</div>
66
<div class="modal-body">
7-
<app-user [user]="user" *ngFor="let user of users$ | async"></app-user>
7+
<app-user2 [user]="user" *ngFor="let user of users$ | async"></app-user2>
88
</div>
99
<div class="modal-footer">
1010
<button type="button" (click)="load()" class="btn btn-secondary" i18n>Refresh</button>

src/app/users/online/online.component.ts

Lines changed: 6 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,26 +1,22 @@
11
import {Component} from '@angular/core';
22
import {NgbActiveModal} from '@ng-bootstrap/ng-bootstrap';
3-
import {APIUser} from '../../services/user';
4-
import {APIService} from '../../services/api.service';
53
import {map, switchMap} from 'rxjs/operators';
6-
import {BehaviorSubject} from 'rxjs';
7-
8-
interface Response {
9-
items: APIUser[];
10-
}
4+
import {BehaviorSubject, Observable} from 'rxjs';
5+
import {UsersClient} from '@grpc/spec.pbsc';
6+
import {APIUser, APIUsersRequest} from '@grpc/spec.pb';
117

128
@Component({
139
selector: 'app-users-online',
1410
templateUrl: './online.component.html',
1511
})
1612
export class UsersOnlineComponent {
1713
private reload$ = new BehaviorSubject<boolean>(true);
18-
public users$ = this.reload$.pipe(
19-
switchMap(() => this.api.request<Response>('GET', 'user/online')),
14+
public users$: Observable<APIUser[]> = this.reload$.pipe(
15+
switchMap(() => this.usersClient.getUsers(new APIUsersRequest({isOnline: true}))),
2016
map((response) => response.items)
2117
);
2218

23-
constructor(public activeModal: NgbActiveModal, private api: APIService) {}
19+
constructor(public readonly activeModal: NgbActiveModal, private readonly usersClient: UsersClient) {}
2420

2521
public load() {
2622
this.reload$.next(true);

0 commit comments

Comments
 (0)