2022-08-31 13:02:05 +00:00
|
|
|
|
2022-11-23 09:17:09 +00:00
|
|
|
import { decrypt, prisma } from '../common';
|
2022-08-29 13:29:00 +00:00
|
|
|
|
|
|
|
|
export async function removeService({ id }: { id: string }): Promise<void> {
|
|
|
|
|
await prisma.serviceSecret.deleteMany({ where: { serviceId: id } });
|
2022-10-17 13:43:57 +00:00
|
|
|
await prisma.serviceSetting.deleteMany({ where: { serviceId: id } });
|
2022-08-29 13:29:00 +00:00
|
|
|
await prisma.servicePersistentStorage.deleteMany({ where: { serviceId: id } });
|
|
|
|
|
await prisma.meiliSearch.deleteMany({ where: { serviceId: id } });
|
|
|
|
|
await prisma.fider.deleteMany({ where: { serviceId: id } });
|
|
|
|
|
await prisma.ghost.deleteMany({ where: { serviceId: id } });
|
|
|
|
|
await prisma.umami.deleteMany({ where: { serviceId: id } });
|
|
|
|
|
await prisma.hasura.deleteMany({ where: { serviceId: id } });
|
|
|
|
|
await prisma.plausibleAnalytics.deleteMany({ where: { serviceId: id } });
|
|
|
|
|
await prisma.minio.deleteMany({ where: { serviceId: id } });
|
|
|
|
|
await prisma.vscodeserver.deleteMany({ where: { serviceId: id } });
|
|
|
|
|
await prisma.wordpress.deleteMany({ where: { serviceId: id } });
|
|
|
|
|
await prisma.glitchTip.deleteMany({ where: { serviceId: id } });
|
|
|
|
|
await prisma.moodle.deleteMany({ where: { serviceId: id } });
|
|
|
|
|
await prisma.appwrite.deleteMany({ where: { serviceId: id } });
|
|
|
|
|
await prisma.searxng.deleteMany({ where: { serviceId: id } });
|
2022-08-31 13:02:05 +00:00
|
|
|
await prisma.weblate.deleteMany({ where: { serviceId: id } });
|
2022-09-02 12:11:36 +00:00
|
|
|
await prisma.taiga.deleteMany({ where: { serviceId: id } });
|
2022-09-20 12:58:25 +00:00
|
|
|
|
2022-08-29 13:29:00 +00:00
|
|
|
await prisma.service.delete({ where: { id } });
|
2022-11-23 09:17:09 +00:00
|
|
|
}
|
|
|
|
|
export async function verifyAndDecryptServiceSecrets(id: string) {
|
|
|
|
|
const secrets = await prisma.serviceSecret.findMany({ where: { serviceId: id } })
|
|
|
|
|
let decryptedSecrets = secrets.map(secret => {
|
|
|
|
|
const { name, value } = secret
|
|
|
|
|
if (value) {
|
|
|
|
|
let rawValue = decrypt(value)
|
|
|
|
|
rawValue = rawValue.replaceAll(/\$/gi, '$$$')
|
|
|
|
|
return { name, value: rawValue }
|
|
|
|
|
}
|
|
|
|
|
return { name, value }
|
|
|
|
|
|
|
|
|
|
})
|
|
|
|
|
return decryptedSecrets
|
2022-08-29 13:29:00 +00:00
|
|
|
}
|