import {HttpClient, HttpHeaders} from '@angular/common/http'; import {Injectable} from '@angular/core'; import {Observable} from 'rxjs'; import {ApiResultModel} from '../models/api-result.model'; import {AppStateService} from './app-state.service'; import {VpnStatusModel} from '../models/vpn/vpn-status.model'; import {DnsStatusModel} from '../models/dns/dns-status.model'; import {share} from 'rxjs/operators'; const httpPostOptions = { headers: new HttpHeaders({ 'Content-Type': 'application/json' }) }; @Injectable({ providedIn: 'root' }) export class StatusService { private urlBase = 'api/status'; constructor(private http: HttpClient, private appStateService: AppStateService) { } getVpnStatus(): Observable> { const obs = this.http.get>(`${this.urlBase}/vpn`).pipe(share()); obs.subscribe(vpnStatus => { this.appStateService.updateVpnStatus(vpnStatus.data); }); return obs; } getDnsStatus(): Observable> { const obs = this.http.get>(`${this.urlBase}/dns`).pipe(share()); obs.subscribe(dnsStatus => { this.appStateService.updateDnsStatus(dnsStatus.data); }); return obs; } }