2022-04-03 19:16:17 -05:00
|
|
|
import { registerPlugin, Capacitor, WebPlugin } from '@capacitor/core';
|
|
|
|
|
2022-04-04 19:08:27 -05:00
|
|
|
class AbsDatabaseWeb extends WebPlugin {
|
2022-04-03 19:16:17 -05:00
|
|
|
constructor() {
|
|
|
|
super()
|
|
|
|
}
|
|
|
|
|
2022-04-04 19:08:27 -05:00
|
|
|
async getDeviceData() {
|
2022-04-03 19:16:17 -05:00
|
|
|
var dd = localStorage.getItem('device')
|
|
|
|
if (dd) {
|
|
|
|
return JSON.parse(dd)
|
|
|
|
}
|
|
|
|
const deviceData = {
|
|
|
|
serverConnectionConfigs: [],
|
|
|
|
lastServerConnectionConfigId: null,
|
|
|
|
localLibraryItemIdPlaying: null
|
|
|
|
}
|
|
|
|
return deviceData
|
|
|
|
}
|
|
|
|
|
2022-04-04 19:08:27 -05:00
|
|
|
async setCurrentServerConnectionConfig(serverConnectionConfig) {
|
|
|
|
var deviceData = await this.getDeviceData()
|
2022-04-03 19:16:17 -05:00
|
|
|
|
|
|
|
var ssc = deviceData.serverConnectionConfigs.find(_ssc => _ssc.id == serverConnectionConfig.id)
|
|
|
|
if (ssc) {
|
|
|
|
deviceData.lastServerConnectionConfigId = ssc.id
|
|
|
|
ssc.name = `${ssc.address} (${serverConnectionConfig.username})`
|
|
|
|
ssc.token = serverConnectionConfig.token
|
|
|
|
ssc.username = serverConnectionConfig.username
|
|
|
|
localStorage.setItem('device', JSON.stringify(deviceData))
|
|
|
|
} else {
|
|
|
|
ssc = {
|
|
|
|
id: encodeURIComponent(Buffer.from(`${serverConnectionConfig.address}@${serverConnectionConfig.username}`).toString('base64')),
|
|
|
|
index: deviceData.serverConnectionConfigs.length,
|
|
|
|
name: `${serverConnectionConfig.address} (${serverConnectionConfig.username})`,
|
|
|
|
username: serverConnectionConfig.username,
|
|
|
|
address: serverConnectionConfig.address,
|
|
|
|
token: serverConnectionConfig.token
|
|
|
|
}
|
|
|
|
deviceData.serverConnectionConfigs.push(ssc)
|
|
|
|
deviceData.lastServerConnectionConfigId = ssc.id
|
|
|
|
localStorage.setItem('device', JSON.stringify(deviceData))
|
|
|
|
}
|
|
|
|
return ssc
|
|
|
|
}
|
|
|
|
|
2022-04-04 19:08:27 -05:00
|
|
|
async removeServerConnectionConfig(serverConnectionConfigCallObject) {
|
2022-04-03 19:16:17 -05:00
|
|
|
var serverConnectionConfigId = serverConnectionConfigCallObject.serverConnectionConfigId
|
2022-04-04 19:08:27 -05:00
|
|
|
var deviceData = await this.getDeviceData()
|
2022-04-03 19:16:17 -05:00
|
|
|
deviceData.serverConnectionConfigs = deviceData.serverConnectionConfigs.filter(ssc => ssc.id == serverConnectionConfigId)
|
|
|
|
localStorage.setItem('device', JSON.stringify(deviceData))
|
|
|
|
}
|
|
|
|
|
2022-04-04 19:08:27 -05:00
|
|
|
async logout() {
|
|
|
|
var deviceData = await this.getDeviceData()
|
|
|
|
deviceData.lastServerConnectionConfigId = null
|
|
|
|
localStorage.setItem('device', JSON.stringify(deviceData))
|
2022-04-03 19:16:17 -05:00
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2022-04-04 19:08:27 -05:00
|
|
|
const AbsDatabase = registerPlugin('AbsDatabase', {
|
|
|
|
web: () => new AbsDatabaseWeb()
|
2022-04-03 19:16:17 -05:00
|
|
|
})
|
|
|
|
|
2022-04-04 19:08:27 -05:00
|
|
|
export { AbsDatabase }
|