Projekt

Obecné

Profil

Stáhnout (2.57 KB) Statistiky
| Větev: | Tag: | Revize:
1 30989178 Hung Hoang
import {Injectable} from '@angular/core';
2
import {HttpClient, HttpParams} from '@angular/common/http';
3
import {BasicService} from './basic.service';
4
import {catchError} from 'rxjs/operators';
5
import {Languages} from '../../enums/common.enum';
6 1d169f6d Hung Hoang
import {MatSnackBar} from '@angular/material';
7 5d32cbea Václav Jirák
import {TranslateService} from '@ngx-translate/core';
8 4ccb6b62 Pavel Fidransky
import { Config } from '../util/config.service';
9 30989178 Hung Hoang
10
@Injectable({
11
  providedIn: 'root'
12
})
13
export class FileService extends BasicService {
14
15 4ccb6b62 Pavel Fidransky
  constructor(protected config: Config, protected http: HttpClient, protected snackBar: MatSnackBar, protected translateService: TranslateService) {
16
    super(config, http, snackBar, translateService);
17 30989178 Hung Hoang
  }
18
19
  /**
20
   * Uploads xlsx file which will be parsed on the server
21
   * @param file xlsx file to be parsed
22
   */
23
  uploadXlsFile(file: FileList) {
24
    return this.makeImportXlsxAPiCall(file, null);
25
  }
26
27
  /**
28
   * Uploads xlsx file which will be parsed on the server
29
   * @param language specify error message language
30
   * @param file xlsx file to be parsed
31
   */
32
  uploadXlsFileWithLanguage(file: FileList, language: Languages) {
33
    return this.makeImportXlsxAPiCall(file, language);
34
  }
35
36
  /**
37
   * Exports a pdf file from the imported xlsx file
38
   */
39
  getExportedPdf() {
40
    return this.makeExportPdfApiCall(null);
41
  }
42
43
  /**
44
   * Exports a pdf file from the imported xlsx file
45
   * @param language specify error message language
46
   */
47
  getExportedPdfWithLanguage(language: Languages) {
48
    return this.makeExportPdfApiCall(language);
49
  }
50
51
  /**
52
   * Testovaci endpoint pro export PDF souboru
53
   * GET /export/pdf? [lang=<CZ,EN>]
54
   * @param language specify error message language
55
   */
56
  private makeExportPdfApiCall(language: Languages) {
57
    const httpParams: HttpParams = this.createParams({lang: language});
58
59
    return this.http.get(this.baseUrl + '/api/export/pdf', {responseType: 'blob', params: httpParams})
60
      .pipe(
61
        catchError(err => this.handleError(err))
62
      );
63
  }
64
65
  /**
66
   * Testovaci endpoint pro import XLS souboru
67
   * POST /import/xls?[lang=<CZ,EN>]&file=<binarni_soubor>
68
   * @param file xlsx file to import and parse
69
   * @param language specify error message langauge
70
   */
71
  private makeImportXlsxAPiCall(file: FileList, language: Languages) {
72
    const fileCount: number = file.length;
73
    const formData = new FormData();
74
75
    const httpParams: HttpParams = this.createParams({lang: language});
76
    const options = {params: httpParams};
77
78
    if (fileCount > 0) {
79
80
      formData.append('file', file.item(0));
81
      return this.http.post(this.baseUrl + '/api/import/xls', formData, options);
82
    }
83
  }
84
}