You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

status.service.ts 1.4KB

1234567891011121314151617181920212223242526272829303132333435
  1. import {HttpClient, HttpHeaders} from '@angular/common/http';
  2. import {Injectable} from '@angular/core';
  3. import {Observable} from 'rxjs';
  4. import {ApiResultModel} from '../models/api-result.model';
  5. import {AppStateService} from './app-state.service';
  6. import {VpnStatusModel} from '../models/vpn/vpn-status.model';
  7. import {DnsStatusModel} from '../models/dns/dns-status.model';
  8. import {share} from 'rxjs/operators';
  9. const httpPostOptions = {
  10. headers: new HttpHeaders({ 'Content-Type': 'application/json' })
  11. };
  12. @Injectable({ providedIn: 'root' })
  13. export class StatusService {
  14. private urlBase = 'api/status';
  15. constructor(private http: HttpClient, private appStateService: AppStateService) { }
  16. getVpnStatus(): Observable<ApiResultModel<VpnStatusModel>> {
  17. const obs = this.http.get<ApiResultModel<VpnStatusModel>>(`${this.urlBase}/vpn`).pipe(share());
  18. obs.subscribe(vpnStatus => {
  19. this.appStateService.updateVpnStatus(vpnStatus.data);
  20. });
  21. return obs;
  22. }
  23. getDnsStatus(): Observable<ApiResultModel<DnsStatusModel>> {
  24. const obs = this.http.get<ApiResultModel<DnsStatusModel>>(`${this.urlBase}/dns`).pipe(share());
  25. obs.subscribe(dnsStatus => {
  26. this.appStateService.updateDnsStatus(dnsStatus.data);
  27. });
  28. return obs;
  29. }
  30. }