43 lines
1.1 KiB
TypeScript
43 lines
1.1 KiB
TypeScript
/** @file
|
|
* @author Edouard DUPIN
|
|
* @copyright 2018, Edouard DUPIN, all right reserved
|
|
* @license PROPRIETARY (see license file)
|
|
*/
|
|
|
|
import { Injectable } from '@angular/core';
|
|
|
|
@Injectable()
|
|
export class CookiesService {
|
|
constructor() {}
|
|
|
|
set(cname: string, cvalue: string, exdays: number): void {
|
|
if (this.get(cname) !== '') {
|
|
// reset previous cookies...
|
|
document.cookie = `${cname}=;expires=Thu, 01 Jan 1970 00:00:00 GMT;path=/`;
|
|
}
|
|
let ddd = new Date();
|
|
ddd.setTime(ddd.getTime() + exdays * 24 * 60 * 60 * 1000);
|
|
let expires = `expires=${ddd.toUTCString()}`;
|
|
document.cookie = `${cname}=${cvalue};${expires};path=/`;
|
|
}
|
|
|
|
remove(cname: string): void {
|
|
this.set(cname, '', 0);
|
|
}
|
|
|
|
get(cname: string): string | undefined {
|
|
let name = `${cname}=`;
|
|
let coolies = document.cookie.split(';');
|
|
for (let iii = 0; iii < coolies.length; iii++) {
|
|
let ccc = coolies[iii];
|
|
while (ccc.charAt(0) === ' ') {
|
|
ccc = ccc.substring(1);
|
|
}
|
|
if (ccc.indexOf(name) === 0) {
|
|
return ccc.substring(name.length, ccc.length);
|
|
}
|
|
}
|
|
return '';
|
|
}
|
|
}
|