2018-02-09 06:04:10 +00:00
|
|
|
import { dbPromise, getDatabase } from './databaseLifecycle'
|
|
|
|
import { getInCache, hasInCache, setInCache } from './cache'
|
|
|
|
|
2018-02-09 06:29:29 +00:00
|
|
|
export async function getGenericEntityWithId (store, cache, instanceName, id) {
|
2018-02-09 06:04:10 +00:00
|
|
|
if (hasInCache(cache, instanceName, id)) {
|
|
|
|
return getInCache(cache, instanceName, id)
|
|
|
|
}
|
|
|
|
const db = await getDatabase(instanceName)
|
|
|
|
let result = await dbPromise(db, store, 'readonly', (store, callback) => {
|
|
|
|
store.get(id).onsuccess = (e) => callback(e.target.result)
|
|
|
|
})
|
|
|
|
setInCache(cache, instanceName, id, result)
|
|
|
|
return result
|
|
|
|
}
|
|
|
|
|
2018-02-09 06:29:29 +00:00
|
|
|
export async function setGenericEntityWithId (store, cache, instanceName, entity) {
|
2018-02-09 06:04:10 +00:00
|
|
|
setInCache(cache, instanceName, entity.id, entity)
|
|
|
|
const db = await getDatabase(instanceName)
|
2018-02-09 06:29:29 +00:00
|
|
|
return dbPromise(db, store, 'readwrite', (store) => {
|
2018-02-09 06:04:10 +00:00
|
|
|
store.put(entity)
|
|
|
|
})
|
2018-02-09 06:29:29 +00:00
|
|
|
}
|