import { FormStyle } from '@angular/common'; import { HttpClient } from '@angular/common/http'; import { Component, OnInit } from '@angular/core'; import { interval } from 'rxjs'; import { environment } from 'src/environments/environment'; class Status { constructor(public user: string, public message: string) {} } class StatusAnswer { constructor(public success: boolean = false, public userStatuses: Status[] = []) {} } class Quote { constructor(public user: string, public quote: string) {} } class QuotesAnswer { constructor(public success: boolean = false, public quotes: Quote[] = []) {} } @Component({ selector: 'app-home', templateUrl: './home.component.html', styleUrls: ['./home.component.scss'] }) export class HomeComponent implements OnInit { userStatuses: Status[] = [] quotes: Quote[] = [] loadingStatuses = true loadingQuotes = true constructor(private http: HttpClient) { } ngOnInit(): void { this.updateElements() interval(20000).subscribe((() => { this.updateElements() })) } updateElements() { this.http.get(`${environment.apiURL}/users/status`).subscribe((answer) => { var userStatusAnswer = Object.assign(new StatusAnswer(), answer) this.loadingStatuses &&= !userStatusAnswer.success if (userStatusAnswer.success) { this.userStatuses = userStatusAnswer.userStatuses } }) this.http.get(`${environment.apiURL}/users/quotes`).subscribe((answer) => { var quotesAnswer = Object.assign(new QuotesAnswer(), answer) this.loadingQuotes &&= !quotesAnswer.success if (quotesAnswer.success) { this.quotes = quotesAnswer.quotes } }) } }