Projekt

Obecné

Profil

Stáhnout (1.99 KB) Statistiky
| Větev: | Tag: | Revize:
1 41741550 Hung Hoang
import { Injectable } from '@angular/core';
2 4bcef705 Hung Hoang
import {HttpClient, HttpParams} from '@angular/common/http';
3 41741550 Hung Hoang
import { catchError } from 'rxjs/operators';
4
5
import { BasicService } from './basic.service';
6
import { Settings } from '../models/settings.model';
7 4bcef705 Hung Hoang
import {Languages} from '../enums/common.enum';
8 41741550 Hung Hoang
9
@Injectable({
10
  providedIn: 'root'
11
})
12
export class SettingsService extends BasicService {
13 4bcef705 Hung Hoang
  defaultSettingsUrl = this.baseUrl + '/api/settings';
14 41741550 Hung Hoang
15 4bcef705 Hung Hoang
  constructor(protected http: HttpClient) {
16
    super(http);
17
  }
18
19
  /**
20
   * Returns default application settings
21
   * with sickday count and notification
22
   */
23 41741550 Hung Hoang
  getDefaultSettings() {
24 4bcef705 Hung Hoang
    return this.makeGetSettingsApiCall(null);
25
  }
26
27
  /**
28
   * Returns default application settings
29
   * with sickday count and notification
30
   * @param language filter by language
31
   */
32
  getDefaultSettingsWithLanguage(language: Languages) {
33
    return this.makeGetSettingsApiCall(language);
34
  }
35
36
  /**
37
   * Získání aktuálně použitého výchozího nastavení v aplikaci
38
   * GET /setttings?[lang=<CZ,EN>]
39
   * @param language filter with language
40
   */
41
  private makeGetSettingsApiCall(language: string) {
42
    const httpParams: HttpParams = this.createParams({lang: language});
43
    const options = {params: httpParams};
44
45
    return this.http.get<Settings>(this.defaultSettingsUrl, options)
46 41741550 Hung Hoang
      .pipe(
47
        catchError(err => this.handleError(err))
48
      );
49
  }
50
51 4bcef705 Hung Hoang
  postDefaultSettings(settings: Settings) {
52
    return this.postDefaultSettingsWithOptions(settings, null);
53 41741550 Hung Hoang
  }
54
55 4bcef705 Hung Hoang
  postDefaultSettingsWithLanguage(settings: Settings, language: Languages) {
56
    return this.postDefaultSettingsWithOptions(settings, language);
57 41741550 Hung Hoang
  }
58
59 4bcef705 Hung Hoang
  private postDefaultSettingsWithOptions(settings: Settings, language: Languages) {
60
    const httpParams: HttpParams = this.createParams({lang: language});
61
    const options = {params: httpParams};
62
63 41741550 Hung Hoang
    return this.http.post<Settings>(this.defaultSettingsUrl, settings, options)
64
      .pipe(
65
        catchError(err => this.handleError(err))
66
      );
67
  }
68
}