import { HttpClient , HttpHeaders, HttpParams } from '@angular/common/http'; import { TokenService, TokenProvider } from './login/token.service' import 'rxjs/Rx'; declare var X2JS: any; export class RestBase { xml2jsonOBJ: any; static get parameters() { return [HttpClient, TokenService] } constructor(public http : HttpClient, public tokenService : TokenService) { this.xml2jsonOBJ = new X2JS(); } protocol: string = "http"; hostname: string ="dl010.madgik.di.uoa.gr" ;//"localhost";//"dl010.madgik.di.uoa.gr";// port: number = 8080;//8080;// webappname: string = "dmp-backend";//"dmp-backend-new";// // protocol: string = "http"; // hostname: string = "dionysus.di.uoa.gr" ; // port: number = 7070; // webappname: string = "dmp-backend"; proxyPath : string = this.protocol+"://"+this.hostname+":"+this.port+"/"+this.webappname+"/proxy/"; loginPath : string = this.protocol+"://"+this.hostname+":"+this.port+"/"+this.webappname+"/login/"; restPath: string = this.protocol+"://"+this.hostname+":"+this.port+"/"+this.webappname+"/rest/"; public proxy_get(path : string, params? : any){ var options = this.createOptions(params); return this.http.get(this.proxyPath +"proxy?url="+ path, options); } public proxy_get_wQuery(path : string, query: string, params? : any){ var options = this.createOptions(params); var queryPart = (query) ? "?search="+query : ""; return this.http.get(this.proxyPath +"proxy?url=" + path + queryPart, options); } public login(path : string, data : any){ let options = { headers: new HttpHeaders().set('Content-Type', 'application/json') }; return this.http.post(this.loginPath + path, JSON.stringify(data), options); } public get(path : string, params? : any){ var options = this.createOptions(params); return this.http.get(this.restPath + path, options); } public post(path : string, data : any, params? : any){ var options = this.createOptions(params); return this.http.post(this.restPath + path, JSON.stringify(data), options); } private createOptions(parameters : any){ var token = this.tokenService.getToken(); var provider: TokenProvider = this.tokenService.getProvider(); var params = new HttpParams(); if(parameters != null){ Object.entries(parameters).forEach( entry => { params = params.set(entry[0], entry[1]); }); } var headers; if(provider == TokenProvider.google) headers = new HttpHeaders().set('Content-Type', 'application/json').set("google-token", token); if(provider == TokenProvider.native) headers = new HttpHeaders().set('Content-Type', 'application/json').set("native-token", token); let options = { params: params, headers: headers }; return options; } }