import * as plugins from './webclient.plugins'; export class CsWebclient { webstore: plugins.webstore.WebStore; constructor() { this.webstore = new plugins.webstore.WebStore({ dbName: 'consentsoftware', storeName: 'webclient' }); } public async isCookieLevelSet(): Promise { const result = await this.webstore.get('acceptedCookieLevels'); return !!result; } public async setCookieLevels(cookieLevelsArg: plugins.csInterfaces.TCookieLevel[]): Promise { await this.webstore.set('acceptedCookieLevels', { acceptanceTimestamp: Date.now(), acceptedCookieLevels: cookieLevelsArg }); return true; } public async getCookieLevels(): Promise { const result = await this.webstore.get('acceptedCookieLevels'); return result.acceptedCookieLevels; } public async isCookieLevelStillValid(): Promise { if(!this.isCookieLevelSet) { return false; } const result = await this.webstore.get('acceptedCookieLevels'); if (result.acceptanceTimestamp < (Date.now() - plugins.smarttime.getMilliSecondsFromUnits({months: 3}))) { return false; } return true; } }