Files
doneit-web/src/app/models/beast-orm-function.ts
T

64 lines
1.7 KiB
TypeScript
Raw Normal View History

2023-07-10 12:32:01 +01:00
import { AES, SHA1, enc } from "crypto-js";
import { environment } from 'src/environments/environment'
function prefix() {
return environment.version.lastCommitNumber + environment.id+"-";
}
2023-07-12 13:54:20 +01:00
export function GET({key, instance}) {
2023-07-10 12:32:01 +01:00
if(environment.storageProduction) {
try {
const newKey = prefix() + SHA1(key).toString()
const cipherText = localStorage.getItem(newKey)
const bytes = AES.decrypt(cipherText, newKey)
var decryptedData = bytes.toString(enc.Utf8);
const restoredData = JSON.parse(decryptedData)
Object.assign(instance, restoredData);
return restoredData
} catch(error) {
console.log(error)
return {}
}
} else {
2023-07-12 13:54:20 +01:00
const newKey = prefix() + key
const restoredData = JSON.parse(localStorage.getItem(newKey))
2023-07-10 15:09:04 +01:00
Object.assign(instance, restoredData);
return restoredData
2023-07-10 12:32:01 +01:00
}
}
2023-07-12 13:54:20 +01:00
export function SAVE({key, instance, dataToSave}) {
2023-07-10 12:32:01 +01:00
if(environment.storageProduction) {
const newKey = prefix() + SHA1(key).toString()
const stringifyData = JSON.stringify(dataToSave)
const cipherText = AES.encrypt(stringifyData, newKey).toString();
localStorage.setItem(newKey, cipherText)
} else {
2023-07-10 14:12:56 +01:00
const stringifyData = JSON.stringify(dataToSave)
2023-07-12 13:54:20 +01:00
const newKey = prefix() + key
localStorage.setItem(newKey, stringifyData)
2023-07-10 12:32:01 +01:00
}
}
2023-07-12 13:54:20 +01:00
export function DELETE({key, instance}) {
2023-07-10 12:32:01 +01:00
if(environment.storageProduction) {
const newKey = prefix() + SHA1(key).toString()
localStorage.removeItem(newKey)
} else {
2023-07-12 13:54:20 +01:00
const newKey = prefix() + key
localStorage.removeItem(newKey)
2023-07-10 12:32:01 +01:00
}
}