chore(xo-server/server): use builtin (un)serialize

This commit is contained in:
Julien Fontanet
2023-10-23 16:11:38 +02:00
parent cf8a9d40be
commit df91772f5c

View File

@@ -1,11 +1,35 @@
import Collection from '../collection/redis.mjs'
import { forEach, serializeError } from '../utils.mjs'
import { serializeError } from '../utils.mjs'
import { parseProp } from './utils.mjs'
// ===================================================================
export class Servers extends Collection {
_serialize(server) {
server.allowUnauthorized = server.allowUnauthorized ? 'true' : undefined
server.enabled = server.enabled ? 'true' : undefined
const { error } = server
server.error = error != null ? JSON.stringify(serializeError(error)) : undefined
server.readOnly = server.readOnly ? 'true' : undefined
}
_unserialize(server) {
server.allowUnauthorized = server.allowUnauthorized === 'true'
server.enabled = server.enabled === 'true'
if (server.error) {
server.error = parseProp('server', server, 'error', '')
} else {
delete server.error
}
server.readOnly = server.readOnly === 'true'
// see https://github.com/vatesfr/xen-orchestra/issues/6656
if (server.httpProxy === '') {
delete server.httpProxy
}
}
async create(params) {
const { host } = params
@@ -15,38 +39,4 @@ export class Servers extends Collection {
return /* await */ this.add(params)
}
async get(properties) {
const servers = await super.get(properties)
// Deserializes
forEach(servers, server => {
server.allowUnauthorized = server.allowUnauthorized === 'true'
server.enabled = server.enabled === 'true'
if (server.error) {
server.error = parseProp('server', server, 'error', '')
} else {
delete server.error
}
server.readOnly = server.readOnly === 'true'
// see https://github.com/vatesfr/xen-orchestra/issues/6656
if (server.httpProxy === '') {
delete server.httpProxy
}
})
return servers
}
_update(servers) {
servers.forEach(server => {
server.allowUnauthorized = server.allowUnauthorized ? 'true' : undefined
server.enabled = server.enabled ? 'true' : undefined
const { error } = server
server.error = error != null ? JSON.stringify(serializeError(error)) : undefined
server.readOnly = server.readOnly ? 'true' : undefined
})
return super._update(servers)
}
}