Added types to database/services
This commit is contained in:
		
							parent
							
								
									9973197fa5
								
							
						
					
					
						commit
						008cfdba09
					
				| @ -1,18 +1,24 @@ | |||||||
| import { asyncExecShell, getEngine } from '$lib/common'; |  | ||||||
| import { decrypt, encrypt } from '$lib/crypto'; | import { decrypt, encrypt } from '$lib/crypto'; | ||||||
|  | import type { Minio, Service } from '@prisma/client'; | ||||||
| import cuid from 'cuid'; | import cuid from 'cuid'; | ||||||
| import { generatePassword } from '.'; | import { generatePassword } from '.'; | ||||||
| import { prisma } from './common'; | import { prisma } from './common'; | ||||||
| 
 | 
 | ||||||
| export async function listServices(teamId) { | export async function listServices(teamId: string): Promise<Service[]> { | ||||||
| 	return await prisma.service.findMany({ where: { teams: { some: { id: teamId } } } }); | 	return await prisma.service.findMany({ where: { teams: { some: { id: teamId } } } }); | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| export async function newService({ name, teamId }) { | export async function newService({ | ||||||
|  | 	name, | ||||||
|  | 	teamId | ||||||
|  | }: { | ||||||
|  | 	name: string; | ||||||
|  | 	teamId: string; | ||||||
|  | }): Promise<Service> { | ||||||
| 	return await prisma.service.create({ data: { name, teams: { connect: { id: teamId } } } }); | 	return await prisma.service.create({ data: { name, teams: { connect: { id: teamId } } } }); | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| export async function getService({ id, teamId }) { | export async function getService({ id, teamId }: { id: string; teamId: string }): Promise<Service> { | ||||||
| 	const body = await prisma.service.findFirst({ | 	const body = await prisma.service.findFirst({ | ||||||
| 		where: { id, teams: { some: { id: teamId } } }, | 		where: { id, teams: { some: { id: teamId } } }, | ||||||
| 		include: { | 		include: { | ||||||
| @ -63,7 +69,13 @@ export async function getService({ id, teamId }) { | |||||||
| 	return { ...body }; | 	return { ...body }; | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| export async function configureServiceType({ id, type }) { | export async function configureServiceType({ | ||||||
|  | 	id, | ||||||
|  | 	type | ||||||
|  | }: { | ||||||
|  | 	id: string; | ||||||
|  | 	type: string; | ||||||
|  | }): Promise<void> { | ||||||
| 	if (type === 'plausibleanalytics') { | 	if (type === 'plausibleanalytics') { | ||||||
| 		const password = encrypt(generatePassword()); | 		const password = encrypt(generatePassword()); | ||||||
| 		const postgresqlUser = cuid(); | 		const postgresqlUser = cuid(); | ||||||
| @ -179,56 +191,148 @@ export async function configureServiceType({ id, type }) { | |||||||
| 		}); | 		}); | ||||||
| 	} | 	} | ||||||
| } | } | ||||||
| export async function setServiceVersion({ id, version }) { | export async function setServiceVersion({ | ||||||
|  | 	id, | ||||||
|  | 	version | ||||||
|  | }: { | ||||||
|  | 	id: string; | ||||||
|  | 	version: string; | ||||||
|  | }): Promise<Service> { | ||||||
| 	return await prisma.service.update({ | 	return await prisma.service.update({ | ||||||
| 		where: { id }, | 		where: { id }, | ||||||
| 		data: { version } | 		data: { version } | ||||||
| 	}); | 	}); | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| export async function setServiceSettings({ id, dualCerts }) { | export async function setServiceSettings({ | ||||||
|  | 	id, | ||||||
|  | 	dualCerts | ||||||
|  | }: { | ||||||
|  | 	id: string; | ||||||
|  | 	dualCerts: boolean; | ||||||
|  | }): Promise<Service> { | ||||||
| 	return await prisma.service.update({ | 	return await prisma.service.update({ | ||||||
| 		where: { id }, | 		where: { id }, | ||||||
| 		data: { dualCerts } | 		data: { dualCerts } | ||||||
| 	}); | 	}); | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| export async function updatePlausibleAnalyticsService({ id, fqdn, email, username, name }) { | export async function updatePlausibleAnalyticsService({ | ||||||
|  | 	id, | ||||||
|  | 	fqdn, | ||||||
|  | 	email, | ||||||
|  | 	username, | ||||||
|  | 	name | ||||||
|  | }: { | ||||||
|  | 	id: string; | ||||||
|  | 	fqdn: string; | ||||||
|  | 	name: string; | ||||||
|  | 	email: string; | ||||||
|  | 	username: string; | ||||||
|  | }): Promise<void> { | ||||||
| 	await prisma.plausibleAnalytics.update({ where: { serviceId: id }, data: { email, username } }); | 	await prisma.plausibleAnalytics.update({ where: { serviceId: id }, data: { email, username } }); | ||||||
| 	await prisma.service.update({ where: { id }, data: { name, fqdn } }); | 	await prisma.service.update({ where: { id }, data: { name, fqdn } }); | ||||||
| } | } | ||||||
| export async function updateService({ id, fqdn, name }) { | export async function updateService({ | ||||||
|  | 	id, | ||||||
|  | 	fqdn, | ||||||
|  | 	name | ||||||
|  | }: { | ||||||
|  | 	id: string; | ||||||
|  | 	fqdn: string; | ||||||
|  | 	name: string; | ||||||
|  | }): Promise<Service> { | ||||||
| 	return await prisma.service.update({ where: { id }, data: { fqdn, name } }); | 	return await prisma.service.update({ where: { id }, data: { fqdn, name } }); | ||||||
| } | } | ||||||
| export async function updateLanguageToolService({ id, fqdn, name }) { | export async function updateLanguageToolService({ | ||||||
|  | 	id, | ||||||
|  | 	fqdn, | ||||||
|  | 	name | ||||||
|  | }: { | ||||||
|  | 	id: string; | ||||||
|  | 	fqdn: string; | ||||||
|  | 	name: string; | ||||||
|  | }): Promise<Service> { | ||||||
| 	return await prisma.service.update({ where: { id }, data: { fqdn, name } }); | 	return await prisma.service.update({ where: { id }, data: { fqdn, name } }); | ||||||
| } | } | ||||||
| export async function updateMeiliSearchService({ id, fqdn, name }) { | export async function updateMeiliSearchService({ | ||||||
|  | 	id, | ||||||
|  | 	fqdn, | ||||||
|  | 	name | ||||||
|  | }: { | ||||||
|  | 	id: string; | ||||||
|  | 	fqdn: string; | ||||||
|  | 	name: string; | ||||||
|  | }): Promise<Service> { | ||||||
| 	return await prisma.service.update({ where: { id }, data: { fqdn, name } }); | 	return await prisma.service.update({ where: { id }, data: { fqdn, name } }); | ||||||
| } | } | ||||||
| export async function updateVaultWardenService({ id, fqdn, name }) { | export async function updateVaultWardenService({ | ||||||
|  | 	id, | ||||||
|  | 	fqdn, | ||||||
|  | 	name | ||||||
|  | }: { | ||||||
|  | 	id: string; | ||||||
|  | 	fqdn: string; | ||||||
|  | 	name: string; | ||||||
|  | }): Promise<Service> { | ||||||
| 	return await prisma.service.update({ where: { id }, data: { fqdn, name } }); | 	return await prisma.service.update({ where: { id }, data: { fqdn, name } }); | ||||||
| } | } | ||||||
| export async function updateVsCodeServer({ id, fqdn, name }) { | export async function updateVsCodeServer({ | ||||||
|  | 	id, | ||||||
|  | 	fqdn, | ||||||
|  | 	name | ||||||
|  | }: { | ||||||
|  | 	id: string; | ||||||
|  | 	fqdn: string; | ||||||
|  | 	name: string; | ||||||
|  | }): Promise<Service> { | ||||||
| 	return await prisma.service.update({ where: { id }, data: { fqdn, name } }); | 	return await prisma.service.update({ where: { id }, data: { fqdn, name } }); | ||||||
| } | } | ||||||
| export async function updateWordpress({ id, fqdn, name, mysqlDatabase, extraConfig }) { | export async function updateWordpress({ | ||||||
|  | 	id, | ||||||
|  | 	fqdn, | ||||||
|  | 	name, | ||||||
|  | 	mysqlDatabase, | ||||||
|  | 	extraConfig | ||||||
|  | }: { | ||||||
|  | 	id: string; | ||||||
|  | 	fqdn: string; | ||||||
|  | 	name: string; | ||||||
|  | 	mysqlDatabase: string; | ||||||
|  | 	extraConfig: string; | ||||||
|  | }): Promise<Service> { | ||||||
| 	return await prisma.service.update({ | 	return await prisma.service.update({ | ||||||
| 		where: { id }, | 		where: { id }, | ||||||
| 		data: { fqdn, name, wordpress: { update: { mysqlDatabase, extraConfig } } } | 		data: { fqdn, name, wordpress: { update: { mysqlDatabase, extraConfig } } } | ||||||
| 	}); | 	}); | ||||||
| } | } | ||||||
| export async function updateMinioService({ id, publicPort }) { | export async function updateMinioService({ | ||||||
|  | 	id, | ||||||
|  | 	publicPort | ||||||
|  | }: { | ||||||
|  | 	id: string; | ||||||
|  | 	publicPort: number; | ||||||
|  | }): Promise<Minio> { | ||||||
| 	return await prisma.minio.update({ where: { serviceId: id }, data: { publicPort } }); | 	return await prisma.minio.update({ where: { serviceId: id }, data: { publicPort } }); | ||||||
| } | } | ||||||
| export async function updateGhostService({ id, fqdn, name, mariadbDatabase }) { | export async function updateGhostService({ | ||||||
|  | 	id, | ||||||
|  | 	fqdn, | ||||||
|  | 	name, | ||||||
|  | 	mariadbDatabase | ||||||
|  | }: { | ||||||
|  | 	id: string; | ||||||
|  | 	fqdn: string; | ||||||
|  | 	name: string; | ||||||
|  | 	mariadbDatabase: string; | ||||||
|  | }): Promise<Service> { | ||||||
| 	return await prisma.service.update({ | 	return await prisma.service.update({ | ||||||
| 		where: { id }, | 		where: { id }, | ||||||
| 		data: { fqdn, name, ghost: { update: { mariadbDatabase } } } | 		data: { fqdn, name, ghost: { update: { mariadbDatabase } } } | ||||||
| 	}); | 	}); | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| export async function removeService({ id }) { | export async function removeService({ id }: { id: string }): Promise<void> { | ||||||
| 	await prisma.meiliSearch.deleteMany({ where: { serviceId: id } }); | 	await prisma.meiliSearch.deleteMany({ where: { serviceId: id } }); | ||||||
| 	await prisma.ghost.deleteMany({ where: { serviceId: id } }); | 	await prisma.ghost.deleteMany({ where: { serviceId: id } }); | ||||||
| 	await prisma.plausibleAnalytics.deleteMany({ where: { serviceId: id } }); | 	await prisma.plausibleAnalytics.deleteMany({ where: { serviceId: id } }); | ||||||
|  | |||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user