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.3KB

12345678910111213141516171819202122232425262728293031323334
  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. const httpPostOptions = {
  9. headers: new HttpHeaders({ 'Content-Type': 'application/json' })
  10. };
  11. @Injectable({ providedIn: 'root' })
  12. export class StatusService {
  13. private urlBase = 'api/status';
  14. constructor(private http: HttpClient, private appStateService: AppStateService) { }
  15. getVpnStatus(): Observable<ApiResultModel<VpnStatusModel>> {
  16. const obs = this.http.get<ApiResultModel<VpnStatusModel>>(`${this.urlBase}/vpn`);
  17. obs.subscribe(vpnStatus => {
  18. this.appStateService.updateVpnStatus(vpnStatus.data);
  19. });
  20. return obs;
  21. }
  22. getDnsStatus(): Observable<ApiResultModel<DnsStatusModel>> {
  23. const obs = this.http.get<ApiResultModel<DnsStatusModel>>(`${this.urlBase}/dns`);
  24. obs.subscribe(dnsStatus => {
  25. this.appStateService.updateDnsStatus(dnsStatus.data);
  26. });
  27. return obs;
  28. }
  29. }