Projekt

Obecné

Profil

Stáhnout (1.99 KB) Statistiky
| Větev: | Tag: | Revize:
1
import { Injectable } from '@angular/core';
2
import {HttpClient, HttpParams} from '@angular/common/http';
3
import { catchError } from 'rxjs/operators';
4

    
5
import { BasicService } from './basic.service';
6
import { Settings } from '../models/settings.model';
7
import {Languages} from '../enums/common.enum';
8

    
9
@Injectable({
10
  providedIn: 'root'
11
})
12
export class SettingsService extends BasicService {
13
  defaultSettingsUrl = this.baseUrl + '/api/settings';
14

    
15
  constructor(protected http: HttpClient) {
16
    super(http);
17
  }
18

    
19
  /**
20
   * Returns default application settings
21
   * with sickday count and notification
22
   */
23
  getDefaultSettings() {
24
    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
      .pipe(
47
        catchError(err => this.handleError(err))
48
      );
49
  }
50

    
51
  postDefaultSettings(settings: Settings) {
52
    return this.postDefaultSettingsWithOptions(settings, null);
53
  }
54

    
55
  postDefaultSettingsWithLanguage(settings: Settings, language: Languages) {
56
    return this.postDefaultSettingsWithOptions(settings, language);
57
  }
58

    
59
  private postDefaultSettingsWithOptions(settings: Settings, language: Languages) {
60
    const httpParams: HttpParams = this.createParams({lang: language});
61
    const options = {params: httpParams};
62

    
63
    return this.http.post<Settings>(this.defaultSettingsUrl, settings, options)
64
      .pipe(
65
        catchError(err => this.handleError(err))
66
      );
67
  }
68
}
(5-5/9)