Upsert PA host OK
This commit is contained in:
parent
80f81b4013
commit
b9805d496b
|
@ -120,22 +120,25 @@ function decryptKey(encryptedKey) {
|
||||||
}
|
}
|
||||||
|
|
||||||
async function addHost({ cidr, user, password, description, note }) {
|
async function addHost({ cidr, user, password, description, note }) {
|
||||||
|
if (!CIDR_RE.test(cidr)) throw new Error('Este não é um CIDR válido')
|
||||||
|
|
||||||
|
const ipAddr = cidr.split('/')[0]
|
||||||
|
|
||||||
|
if (!isIPv4(ipAddr)) throw new Error('Este não é um IPv4 válido')
|
||||||
|
const net = ip.cidrSubnet(cidr)
|
||||||
|
|
||||||
|
if (net.subnetMaskLength > 32 || net.networkAddress == '0.0.0.0')
|
||||||
|
throw new Error('Esta não é uma combinação de IP/máscara IPv4 válida')
|
||||||
|
|
||||||
|
const pAHosts = await prisma.pAHost.findMany()
|
||||||
|
|
||||||
try {
|
try {
|
||||||
if (!CIDR_RE.test(cidr)) throw new Error('Este não é um CIDR válido')
|
|
||||||
|
|
||||||
const ipAddr = cidr.split('/')[0]
|
|
||||||
|
|
||||||
if (!isIPv4(ipAddr)) throw new Error('Este não é um IPv4 válido')
|
|
||||||
|
|
||||||
const net = ip.cidrSubnet(cidr)
|
|
||||||
|
|
||||||
if (net.subnetMaskLength > 32 || net.networkAddress == '0.0.0.0')
|
|
||||||
throw new Error('Esta não é uma combinação de IP/máscara IPv4 válida')
|
|
||||||
|
|
||||||
const key = await getUserKey({ ipAddr, user, password })
|
const key = await getUserKey({ ipAddr, user, password })
|
||||||
|
|
||||||
const encryptedKey = encryptKey(key)
|
const encryptedKey = encryptKey(key)
|
||||||
|
|
||||||
|
const id = pAHosts.find(pAHost => pAHost.cidr.split('/')[0] == ipAddr)?.id
|
||||||
|
|
||||||
const pAHost = {
|
const pAHost = {
|
||||||
cidr,
|
cidr,
|
||||||
encryptedKey,
|
encryptedKey,
|
||||||
|
@ -144,11 +147,9 @@ async function addHost({ cidr, user, password, description, note }) {
|
||||||
note
|
note
|
||||||
}
|
}
|
||||||
|
|
||||||
const host = await prisma.pAHost.upsert({
|
const host = id
|
||||||
where: { cidr: cidr },
|
? await prisma.pAHost.update({ where: { id }, data: pAHost })
|
||||||
create: pAHost,
|
: await prisma.pAHost.create({ data: pAHost })
|
||||||
update: pAHost
|
|
||||||
})
|
|
||||||
|
|
||||||
return {
|
return {
|
||||||
...host,
|
...host,
|
||||||
|
|
Loading…
Reference in New Issue
Block a user