{"version":3,"file":"base-service.js","sourceRoot":"","sources":["../../../Scripts/commons/base-service.ts"],"names":[],"mappings":"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","sourcesContent":["/// \r\n/// \r\n/// \r\n\r\nnamespace Seac.Commons {\r\n\t/** Servizio Wrapper per tutte le chiamate ajax */\r\n\texport class BaseService {\r\n\t\tconstructor() {\r\n\t\t\t// Imposto la configurazione di default per tutte le chiamate ajax\r\n\t\t\tjQuery.ajaxSetup({\r\n\t\t\t\tcache: false\r\n\t\t\t});\r\n\r\n\t\t\t// Crea un nuovo oggetto ajaxTransport utilizzato per il download dei file\r\n\t\t\tjQuery.ajaxTransport('+binary', (options: JQuery.AjaxSettings, originalOptiions: JQuery.AjaxSettings, jqXHR: JQuery.jqXHR): JQuery.Transport => {\r\n\t\t\t\treturn {\r\n\t\t\t\t\tsend: (headers: JQuery.PlainObject, completeCallback: JQuery.Transport.SuccessCallback): void => {\r\n\t\t\t\t\t\tlet xhr: XMLHttpRequest = new XMLHttpRequest();\r\n\t\t\t\t\t\tconst url\t: string = options.url || '';\r\n\t\t\t\t\t\tconst type\t: string = options.type || '';\r\n\t\t\t\t\t\tconst async\t: boolean = options.async || true;\r\n\t\t\t\t\t\t// blob or arraybuffer. Default is blob\r\n\t\t\t\t\t\tconst dataType\t: XMLHttpRequestResponseType = 'blob'; // options.responseType || \"blob\" : In PortaleAzienda era così\r\n\t\t\t\t\t\tconst data\t\t: string | null = options.data || null;\r\n\t\t\t\t\t\tconst username\t: string | null = options.username || null;\r\n\t\t\t\t\t\tconst password\t: string | null = options.password || null;\r\n\t\t\t\t\t\txhr.addEventListener('load', function () {\r\n\t\t\t\t\t\t\tlet data: object = {};\r\n\t\t\t\t\t\t\tdata[options.dataType] = xhr.response;\r\n\r\n\t\t\t\t\t\t\tif (xhr.status >= 400) {\r\n\t\t\t\t\t\t\t\t// Nel caso in cui si tratti di un errore inserisco la stringa della response nello statusText,\r\n\t\t\t\t\t\t\t\t// Altrimenti non ho modo di gestire l'errore in seguito\r\n\t\t\t\t\t\t\t\tconst reader: FileReader = new FileReader();\r\n\r\n\t\t\t\t\t\t\t\treader.addEventListener('loadend', (e) => {\r\n\t\t\t\t\t\t\t\t\tcompleteCallback(xhr.status, (e.srcElement).result, data, xhr.getAllResponseHeaders());\r\n\t\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t\t\treader.readAsText(xhr.response);\r\n\t\t\t\t\t\t\t}else {\r\n\t\t\t\t\t\t\t\t// make callback and send data\r\n\t\t\t\t\t\t\t\tcompleteCallback(xhr.status, xhr.statusText, data, xhr.getAllResponseHeaders());\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t});\r\n\r\n\t\t\t\t\t\txhr.open(type, url, async, username, password);\r\n\r\n\t\t\t\t\t\t// setup custom headers\r\n\t\t\t\t\t\tfor (let i in headers) {\r\n\t\t\t\t\t\t\txhr.setRequestHeader(i, headers[i]);\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\txhr.responseType = dataType;\r\n\t\t\t\t\t\txhr.send(data);\r\n\t\t\t\t\t},\r\n\t\t\t\t\tabort: () => {\r\n\t\t\t\t\t\tjqXHR.abort();\r\n\t\t\t\t\t}\r\n\t\t\t\t};\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\t/**\r\n\t\t * Wrapper per il metodo DELETE\r\n\t\t * @param url è possibile passare l'url spezzato, oppure già composto\r\n\t\t */\r\n\t\tprotected delete(...url: Array): JQuery.jqXHR {\r\n\t\t\treturn jQuery.ajax({\r\n\t\t\t\turl\t\t\t: this.buildUrl(url),\r\n\t\t\t\tmethod\t\t: HTTPMethods.DELETE,\r\n\t\t\t\tbeforeSend\t: (jqXHR: JQuery.jqXHR, settings: JQueryAjaxSettings) => {\r\n\t\t\t\t\treturn Seac.Pages.sessionStateUtility.checkImpresaOnPost();\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\t/**\r\n\t\t * Wrapper per il metodo DELETE, a cui vengono aggiunti anche dei queryParams\r\n\t\t * @param queryParams Oggetto che verrà scomposto nei queryParams\r\n\t\t * @param url è possibile passare l'url spezzato, oppure già composto\r\n\t\t */\r\n\t\tprotected deleteWithQueryParams(queryParams: QueryParams, ...url: Array): JQuery.jqXHR {\r\n\t\t\treturn jQuery.ajax({\r\n\t\t\t\turl\t\t\t: this.buildUrl(url, queryParams),\r\n\t\t\t\tmethod\t\t: HTTPMethods.DELETE,\r\n\t\t\t\tbeforeSend\t: (jqXHR: JQuery.jqXHR, settings: JQueryAjaxSettings) => {\r\n\t\t\t\t\treturn Seac.Pages.sessionStateUtility.checkImpresaOnPost();\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\t/**\r\n\t\t * Wrapper per il metodo PUT\r\n\t\t * @param url è possibile passare l'url spezzato, oppure già composto\r\n\t\t */\r\n\t\tprotected put(...url: Array): JQuery.jqXHR {\r\n\t\t\treturn jQuery.ajax({\r\n\t\t\t\turl\t\t\t: this.buildUrl(url),\r\n\t\t\t\tmethod\t\t: HTTPMethods.PUT,\r\n\t\t\t\tbeforeSend\t: (jqXHR: JQuery.jqXHR, settings: JQueryAjaxSettings) => {\r\n\t\t\t\t\treturn Seac.Pages.sessionStateUtility.checkImpresaOnPost();\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\t/**\r\n\t\t * Wrapper per il metodo PUT\r\n\t\t * @param url è possibile passare l'url spezzato, oppure già composto\r\n\t\t */\r\n\t\tprotected putWithQueryParams(queryParams: QueryParams,...url: Array): JQuery.jqXHR {\r\n\t\t\treturn jQuery.ajax({\r\n\t\t\t\turl\t\t\t: this.buildUrl(url, queryParams),\r\n\t\t\t\tmethod\t\t: HTTPMethods.PUT,\r\n\t\t\t\tbeforeSend\t: (jqXHR: JQuery.jqXHR, settings: JQueryAjaxSettings) => {\r\n\t\t\t\t\treturn Seac.Pages.sessionStateUtility.checkImpresaOnPost();\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\t/**\r\n\t\t * Wrapper per il metodo PATCH\r\n\t\t * @param url è possibile passare l'url spezzato, oppure già composto\r\n\t\t */\r\n\t\tprotected patchWithQueryParams(queryParams: QueryParams,...url: Array): JQuery.jqXHR {\r\n\t\t\treturn jQuery.ajax({\r\n\t\t\t\turl\t\t\t: this.buildUrl(url, queryParams),\r\n\t\t\t\tmethod\t\t: HTTPMethods.PATCH,\r\n\t\t\t\tbeforeSend\t: (jqXHR: JQuery.jqXHR, settings: JQueryAjaxSettings) => {\r\n\t\t\t\t\treturn Seac.Pages.sessionStateUtility.checkImpresaOnPost();\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\t/**\r\n\t\t * Wrapper per il metodo GET\r\n\t\t * @param url è possibile passare l'url spezzato, oppure già composto\r\n\t\t */\r\n\t\tprotected get(...url: Array): JQuery.jqXHR {\r\n\t\t\treturn jQuery.ajax({\r\n\t\t\t\turl\t\t\t: this.buildUrl(url),\r\n\t\t\t\tmethod\t\t: HTTPMethods.GET,\r\n\t\t\t\tbeforeSend\t: (jqXHR: JQuery.jqXHR, settings: JQueryAjaxSettings) => {\r\n\t\t\t\t\treturn Seac.Pages.sessionStateUtility.checkImpresaOnPost();\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t}\r\n\t\t/**\r\n\t\t * Wrapper per il metodo GET, a cui vengono aggiunti anche dei queryParams\r\n\t\t * @param queryParams Oggetto che verrà scomposto nei queryParams\r\n\t\t * @param url è possibile passare l'url spezzato, oppure già composto\r\n\t\t */\r\n\t\tprotected getWithQueryParams(queryParams: QueryParams, ...url: Array): JQuery.jqXHR {\r\n\t\t\treturn jQuery.ajax({\r\n\t\t\t\turl\t\t\t: this.buildUrl(url, queryParams),\r\n\t\t\t\tmethod\t\t: HTTPMethods.GET,\r\n\t\t\t\tbeforeSend\t: (jqXHR: JQuery.jqXHR, settings: JQueryAjaxSettings) => {\r\n\t\t\t\t\treturn Seac.Pages.sessionStateUtility.checkImpresaOnPost();\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t}\r\n\t\t/**\r\n\t\t * Wrapper per il metodo post\r\n\t\t * @param data dati da inviare nella richiesta\r\n\t\t * @param url è possibile passare l'url spezzato, oppure già composto\r\n\t\t */\r\n\t\tprotected post(data: any, ...url: Array): JQuery.jqXHR {\r\n\t\t\treturn jQuery.ajax({\r\n\t\t\t\turl\t\t\t: this.buildUrl(url),\r\n\t\t\t\tmethod\t\t: HTTPMethods.POST,\r\n\t\t\t\tdata\t\t: data,\r\n\t\t\t\tbeforeSend\t: (jqXHR: JQuery.jqXHR, settings: JQueryAjaxSettings) => {\r\n\t\t\t\t\treturn Seac.Pages.sessionStateUtility.checkImpresaOnPost();\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\t/**\r\n\t\t * Ricava il nome del file contenuto negli headers della richiesta\r\n\t\t * @param request jqXHR request\r\n\t\t */\r\n\t\tprivate getFileNameFromRequest(request: JQuery.jqXHR) {\r\n\t\t\tif (request && request.getResponseHeader) {\r\n\t\t\t\tlet contectDisposition = request.getResponseHeader(\"Content-Disposition\");\r\n\t\t\t\tif (contectDisposition) {\r\n\t\t\t\t\tlet fileNameParts = contectDisposition.match(/filename[^;=\\n]*=((['\"]).*?\\2|[^;\\n]*)/gm);\r\n\t\t\t\t\tif (fileNameParts && fileNameParts.length == 2) {\r\n\t\t\t\t\t\treturn fileNameParts[0].replace('filename=','').replace(/\"/g,'');\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\t// Nome del file non presente\r\n\t\t\treturn null;\r\n\t\t}\r\n\r\n\t\t/**\r\n\t\t * Metodo utilizzato per il download di un file, mediante una chiamata HTTP GET\r\n\t\t * @param url è possibile passare l'url spezzato, oppure già composto\r\n\t\t */\r\n\t\tprotected downloadFile(...url: Array): JQuery.jqXHR {\r\n\t\t\treturn this.downloadFileInternal(this.buildUrl(url), HTTPMethods.GET, null, false);\r\n\t\t}\r\n\r\n\t\t/**\r\n\t\t * Metodo utilizzato per il download di un file, mediante una chiamata HTTP POST\r\n\t\t * @param data dati da inviare con la richiesta\r\n\t\t * @param url è possibile passare l'url spezzato, oppure già composto\r\n\t\t */\r\n\t\tprotected postAndDownloadFile(data: any, ...url: Array): JQuery.jqXHR {\r\n\t\t\treturn this.downloadFileInternal(this.buildUrl(url), HTTPMethods.POST, data, false);\r\n\t\t}\r\n\r\n\t\t/**\r\n\t\t * Metodo utilizzato per il download di un file, mediante una chiamata HTTP POST.\r\n\t\t * A differenza del metodo base postAndDownloadFile, aggiunge la possibilità di passare dei parametri in query string.\r\n\t\t * @param data dati da inviare con la richiesta\r\n\t\t * @param url è possibile passare l'url spezzato, oppure già composto\r\n\t\t */\r\n\t\tprotected postAndDownloadFileWithParams(data: any, queryParams: QueryParams, ...url: Array): JQuery.jqXHR {\r\n\t\t\treturn this.downloadFileInternal(this.buildUrl(url, queryParams), HTTPMethods.POST, data, false);\r\n\t\t}\r\n\r\n\t\t/**\r\n\t\t * Metodo utilizzato per il download di un file, mediante una chiamata HTTP POST e i dati in formato FormData\r\n\t\t * @param formData dati da inviare con la richiesta in formato FormData\r\n\t\t * @param url è possibile passare l'url spezzato, oppure già composto\r\n\t\t */\r\n\t\tprotected postFormDataAndDownloadFile(formData: FormData, ...url: Array): JQuery.jqXHR {\r\n\t\t\treturn this.downloadFileInternal(this.buildUrl(url), HTTPMethods.POST, formData, true);\r\n\t\t}\r\n\r\n\t\t/**\r\n\t\t * Metodo utilizzato per il caricamento dei dati in formato FormData mediante una chiamata HTTP POST\r\n\t\t * @param formData dati da inviare con la richiesta in formato FormData\r\n\t\t * @param url è possibile passare l'url spezzato, oppure già composto\r\n\t\t */\r\n\t\tprotected postFormData(formData: FormData, ...url: Array): JQuery.jqXHR {\r\n\t\t\treturn jQuery.ajax({\r\n\t\t\t\turl\t\t\t: this.buildUrl(url),\r\n\t\t\t\tmethod\t\t: HTTPMethods.POST,\r\n\t\t\t\tdata\t\t: formData,\r\n\t\t\t\tcontentType\t: false,\r\n\t\t\t\tprocessData\t: false,\r\n\t\t\t\tbeforeSend\t: (jqXHR: JQuery.jqXHR, settings: JQueryAjaxSettings) => {\r\n\t\t\t\t\treturn Seac.Pages.sessionStateUtility.checkImpresaOnPost();\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\t/**\r\n\t\t * Metodo utilizzato per il download di un file, mediante una chiamata HTTP GET\r\n\t\t * @param url è possibile passare l'url spezzato, oppure già composto\r\n\t\t */\r\n\t\tprotected getAndDownloadFileWithQueryParams(queryParams: QueryParams, ...url: Array): JQuery.jqXHR {\r\n\t\t\treturn this.downloadFileInternal(this.buildUrl(url, queryParams), HTTPMethods.GET, null, false);\r\n\t\t}\r\n\r\n\t\t/**\r\n\t\t * Metodo inetrno utilizzato per il download di un file\r\n\t\t * @param url Stringa già composta dell'URL da chiamare\r\n\t\t * @param method Metodo HTTP con cui eseguire la chiamata\r\n\t\t * @param data Nel caso di tratti di una chiamata POST, dati da inviare con la richiesta\r\n\t\t */\r\n\t\tprivate downloadFileInternal(url: string, method: HTTPMethods, data?: any, isFormData?: boolean): JQuery.jqXHR {\r\n\t\t\tconst self = this;\r\n\t\t\tlet contentType: string | boolean = 'application/x-www-form-urlencoded; charset=UTF-8';\r\n\t\t\tlet processData: boolean = true;\r\n\r\n\t\t\tif (isFormData) {\r\n\t\t\t\tcontentType = false;\r\n\t\t\t\tprocessData = false;\r\n\t\t\t}\r\n\r\n\t\t\treturn jQuery.ajax({\r\n\t\t\t\turl: url,\r\n\t\t\t\tmethod: method,\r\n\t\t\t\tdata: data,\r\n\t\t\t\tasync: false,\r\n\t\t\t\tcontentType: contentType,\r\n\t\t\t\tprocessData: processData,\r\n\t\t\t\tdataType: 'binary',\r\n\t\t\t\tbeforeSend: (jqXHR: JQuery.jqXHR, settings: any): false | void => {\r\n\t\t\t\t\tif (Seac.Pages.sessionStateUtility.checkImpresaOnPost() === false) {\r\n\t\t\t\t\t\treturn false;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tif (settings === \"binary\") {\r\n\t\t\t\t\t\ttry {\r\n\t\t\t\t\t\t\tsettings.xhr().responseType = \"arraybuffer\";\r\n\t\t\t\t\t\t\tsettings.processData = false;\r\n\t\t\t\t\t\t} catch (ex) {\r\n\t\t\t\t\t\t\t// Errore di IE 11 su windows 10 ( non ne pregiudica il funzionamento )\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t},\r\n\t\t\t\tsuccess: function (data: any, textStatus: JQuery.Ajax.SuccessTextStatus, jqXHR: JQuery.jqXHR) {\r\n\t\t\t\t\tlet fileName: string = self.getFileNameFromRequest(jqXHR);//getFileNameFromRequest(jqXHR);\r\n\t\t\t\t\tif (((window.top.navigator)).msSaveOrOpenBlob) {\r\n\t\t\t\t\t\t// Store Blob in IE\r\n\t\t\t\t\t\t// TODO: Tipizzare a MSFileSaver\r\n\t\t\t\t\t\t((window.top.navigator)).msSaveOrOpenBlob(data, fileName);\r\n\t\t\t\t\t}else {\r\n\t\t\t\t\t\tsaveAs(data, fileName);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\t/**\r\n\t\t * Si occupa di costruire l'url in base ai segmenti ricevuti, se presenti aggiunge anche i queryParams\r\n\t\t * @param urlSegments array di elementi su cui costruire l'url\r\n\t\t * @param queryParams Oggetto contenente i dati da inserire nei queryParams\r\n\t\t */\r\n\t\tprotected buildUrl(urlSegments: Array, queryParams: QueryParams = null): string {\r\n\t\t\tlet urlString = '';\r\n\t\t\tif (!!urlSegments && urlSegments.length) {\r\n\t\t\t\turlSegments.forEach((segment: string) => {\r\n\t\t\t\t\tif (urlString !== '' && urlString.lastIndexOf('/') !== urlString.length) {\r\n\t\t\t\t\t\turlString += '/';\r\n\t\t\t\t\t}\r\n\t\t\t\t\turlString = `${urlString}${segment}`;\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t\tif ((urlString !== '') && (urlString.indexOf('/') !== 0) && (urlString.indexOf('http') !== 0)) {\r\n\t\t\t\turlString = `/${urlString}`;\r\n\t\t\t}\r\n\r\n\t\t\tif (queryParams != null) {\r\n\t\t\t\tlet queryParamsString: string = '';\r\n\t\t\t\tObject.keys(queryParams).map((key: string) => {\r\n\t\t\t\t\tlet cSegment: string = '';\r\n\t\t\t\t\tif (!Array.isArray(queryParams[key])) {\r\n\t\t\t\t\t\tcSegment = `${key}=${encodeURIComponent(queryParams[key] != null ? queryParams[key].toString() : null)}`;\r\n\t\t\t\t\t}else {\r\n\t\t\t\t\t\t(>queryParams[key]).forEach((value: any) => {\r\n\t\t\t\t\t\t\tif (cSegment.length != 0 && cSegment.indexOf('&') != cSegment.length) {\r\n\t\t\t\t\t\t\t\tcSegment += '&';\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\tcSegment += `${key}=${encodeURIComponent(value != null ? value.toString() : null)}`;\r\n\t\t\t\t\t\t})\r\n\t\t\t\t\t}\r\n\t\t\t\t\tif (queryParamsString === '') {\r\n\t\t\t\t\t\tqueryParamsString = '?';\r\n\t\t\t\t\t}else if (queryParamsString.indexOf('&') !== queryParamsString.length) {\r\n\t\t\t\t\t\tqueryParamsString += '&';\r\n\t\t\t\t\t}\r\n\t\t\t\t\tqueryParamsString += cSegment;\r\n\t\t\t\t});\r\n\t\t\t\turlString += queryParamsString;\r\n\t\t\t}\r\n\r\n\t\t\treturn urlString;\r\n\t\t}\r\n\t}\r\n\r\n\texport class HTTPMethods {\r\n\t\tstatic GET\t\t= 'GET';\r\n\t\tstatic PUT\t\t= 'PUT';\r\n\t\tstatic PATCH\t= 'PATCH';\r\n\t\tstatic POST\t\t= 'POST';\r\n\t\tstatic DELETE\t= 'DELETE';\r\n\t}\r\n\r\n\texport class QueryParams {\r\n\t\t[paramName: string]: any;\r\n\t}\r\n}\r\n"]}