Tim Glasgow
2 years ago
1 changed files with 64 additions and 0 deletions
@ -0,0 +1,64 @@ |
|||
import {System} from '../entities/System'; |
|||
import uuid from 'uuid'; |
|||
|
|||
export default class SystemRepo { |
|||
realmDB = null; |
|||
|
|||
constructor(db) { |
|||
this.realmDB = db; |
|||
} |
|||
|
|||
getAllSystemValues = () => { |
|||
let system = this.realmDB.objects(System.name); |
|||
let systemValues = {}; |
|||
system.forEach((row) => { |
|||
systemValues[row.key] = row.value; |
|||
}); |
|||
return systemValues; |
|||
}; |
|||
|
|||
createSystemValue = (key, value) => { |
|||
let sysID = null; |
|||
let sysKey = key; |
|||
let sysValue = value; |
|||
|
|||
let existing = this.getSystemKeyValue(key); |
|||
|
|||
if (existing.id === null) { |
|||
sysID = uuid.v4(); |
|||
} else { |
|||
sysID = existing.id; |
|||
} |
|||
this.realmDB.write(() => { |
|||
this.realmDB.create( |
|||
System.name, |
|||
{ |
|||
id: sysID, |
|||
key: sysKey, |
|||
value: sysValue, |
|||
}, |
|||
true, |
|||
); |
|||
}); |
|||
}; |
|||
|
|||
deleteSystemValue = (key) => { |
|||
let existingKey = this.getSystemKeyValue(key); |
|||
if (!existingKey.id === null) { |
|||
this.realmDB.write(() => { |
|||
this.realmDB.delete(existingKey); |
|||
}); |
|||
} |
|||
}; |
|||
|
|||
getSystemKeyValue = (key) => { |
|||
let row = this.realmDB.objects(System.name).filtered('key = $0', key); |
|||
if (row.length === 1) { |
|||
return {id: row[0].id, value: row[0].value}; |
|||
} else if (row.length > 1) { |
|||
return 'Multiple system keys found for ' + key; |
|||
} else { |
|||
return {id: null, value: null}; |
|||
} |
|||
}; |
|||
} |
Loading…
Reference in new issue