+ static getData (pluginName: string, pluginType: PluginType, key: string) {
+ const query = {
+ raw: true,
+ attributes: [ [ json('storage.' + key), 'value' ] as any ], // FIXME: typings
+ where: {
+ name: pluginName,
+ type: pluginType
+ }
+ }
+
+ return PluginModel.findOne(query)
+ .then((c: any) => {
+ if (!c) return undefined
+
+ return c.value
+ })
+ }
+
+ static storeData (pluginName: string, pluginType: PluginType, key: string, data: any) {
+ const query = {
+ where: {
+ name: pluginName,
+ type: pluginType
+ }
+ }
+
+ const toSave = {
+ [`storage.${key}`]: data
+ }
+
+ return PluginModel.update(toSave, query)
+ .then(() => undefined)
+ }
+