// Angular Core
import { Injectable } from '@angular/core';
import { HttpClient } from '@angular/common/http';

// Services
import { ApiService } from '../../../../services/api/api.service';
@Injectable({
  providedIn: 'root'
})
export class ExportFileService {

  constructor(private http: HttpClient, public api: ApiService) { }

  /**
   * Export file
   * @param {string} filePrefix
   * @param {object} resultData
   * @param {string} fileExtension
   * * @param {string} fileType
   * @returns void
  */
  exportFileByExtension(filePrefix: string, resultData: any, fileExtension: string, fileType: string) {
    var date = new Date();
    var currentDate = ('0' + (date.getMonth() + 1)).slice(-2) + '.' + ('0' + date.getDate()).slice(-2) + '.' + date.getFullYear();
    if (resultData) {
      var filename = filePrefix + '(' + currentDate + ').' + fileExtension;
      var blob = new Blob([resultData], { type: '"' + fileType + '"' });
      let navigator: any = window.navigator;
      if (navigator && navigator.msSaveOrOpenBlob) { // a.click() won't work on IE or Edge
        navigator.msSaveBlob(blob, filename);
      } else {
        var url = URL.createObjectURL(blob);
        var a = document.createElement('a');
        a.href = url;
        a.download = filename;
        document.body.appendChild(a);
        a.click();
        document.body.removeChild(a);
        window.URL.revokeObjectURL(url);
      }
    }
  };

}
