52 lines
1.9 KiB
TypeScript
52 lines
1.9 KiB
TypeScript
import {Injectable} from "@angular/core";
|
|
import {HttpClient, HttpHeaders} from "@angular/common/http";
|
|
import {properties} from "../../../environments/environment";
|
|
import {CustomOptions} from "./servicesUtils/customOptions.class";
|
|
|
|
@Injectable({
|
|
providedIn: 'root'
|
|
})
|
|
export class ClearCacheService {
|
|
|
|
constructor(private http: HttpClient) {}
|
|
|
|
|
|
clearCache(message: string = null, url:string = null) {
|
|
if(properties.deleteCacheUrl) {
|
|
this.http.get(properties.deleteCacheUrl + (url?'?url='+url:'')).subscribe(
|
|
res => console.log((message ? message + ": " : "") + "Cache cleared!"),
|
|
err => console.log((message ? message + ": " : "") + "Cache could not be cleared ", err)
|
|
);
|
|
}
|
|
}
|
|
clearCacheInRoute(message: string = null, pid:string, route:string = "/") {
|
|
let domain = "";
|
|
if(properties.environment == 'production' || properties.environment == 'beta') {
|
|
domain = 'https://' + (properties.environment == 'production' ? '' : 'beta.') + pid + '.openaire.eu';
|
|
}
|
|
domain = properties.connectPortalUrl;
|
|
this.http.get(domain + route + '?forceCacheReload=true',
|
|
{
|
|
headers: new HttpHeaders({
|
|
'Cache-Control': 'no-cache, no-store, must-revalidate',
|
|
'Pragma': 'no-cache',
|
|
'Expires': '0',
|
|
})
|
|
}).subscribe(
|
|
res => console.log((message ? message + ": " : "") + "Cache cleared!"),
|
|
err => console.log((message ? message + ": " : "") + "Cache could not be cleared ", err)
|
|
);
|
|
|
|
}
|
|
|
|
purgeBrowserCache(message: string = null, pid: string) {
|
|
if(properties.deleteBrowserCacheUrl) {
|
|
let url = properties.deleteBrowserCacheUrl + "/" + pid;
|
|
this.http.get(url, CustomOptions.registryOptions()).subscribe(
|
|
res => console.log((message ? message + ": " : "") + "Browser Cache purged!"),
|
|
err => console.log((message ? message + ": " : "") + "Browser Cache could not be purged ", err)
|
|
);
|
|
}
|
|
}
|
|
}
|