mirror of
https://code.equilibrium.co.ao/ITO/doneit-web.git
synced 2026-04-19 04:57:52 +00:00
save
This commit is contained in:
@@ -1,30 +1,65 @@
|
||||
import { Injectable } from '@angular/core';
|
||||
import { Storage } from '@ionic/storage';
|
||||
import { AnimationController, ModalController,Platform } from '@ionic/angular';
|
||||
import { SHA1 } from 'crypto-js'
|
||||
import { localstoreService } from '../store/localstore.service';
|
||||
/* import { Plugins } from '@capacitor/core';
|
||||
const { Storage } = Plugins; */
|
||||
@Injectable({
|
||||
providedIn: 'root'
|
||||
})
|
||||
export class StorageService {
|
||||
constructor(private storage:Storage,) {}
|
||||
private keyName: string;
|
||||
|
||||
|
||||
constructor(private storage:Storage,
|
||||
private platform: Platform
|
||||
) {}
|
||||
|
||||
key(key) {
|
||||
this.keyName = (SHA1('service'+this.constructor.name+'key')).toString()
|
||||
}
|
||||
|
||||
// Store the value
|
||||
async store(key: string, value: any){
|
||||
const encryptedValue = btoa(escape(JSON.stringify(value)));
|
||||
await this.storage.set(key, encryptedValue);
|
||||
async store(key: string, value: any) {
|
||||
if (this.platform.is('desktop') || this.platform.is('mobileweb')) {
|
||||
await localstoreService.set(this.key(key), value)
|
||||
} else {
|
||||
const encryptedValue = btoa(escape(JSON.stringify(value)));
|
||||
await this.storage.set(key, encryptedValue);
|
||||
}
|
||||
|
||||
}
|
||||
// Get the value
|
||||
async get(key: string) {
|
||||
const ret = await this.storage.get(key).then((val) => { return val; });
|
||||
try {
|
||||
return JSON.parse(unescape(atob(ret)));
|
||||
} catch (error) {
|
||||
return unescape(atob(ret))
|
||||
|
||||
|
||||
if (this.platform.is('desktop') || this.platform.is('mobileweb')) {
|
||||
return new Promise((resolve, reject)=>{
|
||||
const data = localstoreService.get(this.key(key), false)
|
||||
if(data) resolve(data)
|
||||
else reject(data)
|
||||
})
|
||||
} else {
|
||||
const ret = await this.storage.get(key).then((val) => { return val; });
|
||||
try {
|
||||
return JSON.parse(unescape(atob(ret)));
|
||||
} catch (error) {
|
||||
return unescape(atob(ret))
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
async remove(key: string){
|
||||
await this.storage.remove(key);
|
||||
|
||||
if (this.platform.is('desktop') || this.platform.is('mobileweb')) {
|
||||
await localstoreService.delete(this.key(key))
|
||||
} else {
|
||||
await this.storage.remove(key);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user