66 lines
2.0 KiB
TypeScript
66 lines
2.0 KiB
TypeScript
import { privateProcedure, router } from '../trpc';
|
|
import { listSettings } from '../../lib/common';
|
|
import { prisma } from '../../prisma';
|
|
|
|
export const dashboardRouter = router({
|
|
resources: privateProcedure.query(async ({ ctx }) => {
|
|
const id = ctx.user?.teamId === '0' ? undefined : ctx.user?.teamId;
|
|
let applications = await prisma.application.findMany({
|
|
where: { teams: { some: { id } } },
|
|
include: { settings: true, destinationDocker: true, teams: true }
|
|
});
|
|
const databases = await prisma.database.findMany({
|
|
where: { teams: { some: { id } } },
|
|
include: { settings: true, destinationDocker: true, teams: true }
|
|
});
|
|
const services = await prisma.service.findMany({
|
|
where: { teams: { some: { id } } },
|
|
include: { destinationDocker: true, teams: true }
|
|
});
|
|
const gitSources = await prisma.gitSource.findMany({
|
|
where: {
|
|
OR: [{ teams: { some: { id } } }, { isSystemWide: true }]
|
|
},
|
|
include: { teams: true }
|
|
});
|
|
const destinations = await prisma.destinationDocker.findMany({
|
|
where: { teams: { some: { id } } },
|
|
include: { teams: true }
|
|
});
|
|
const settings = await listSettings();
|
|
let foundUnconfiguredApplication = false;
|
|
for (const application of applications) {
|
|
if (
|
|
((!application.buildPack || !application.branch) && !application.simpleDockerfile) ||
|
|
!application.destinationDockerId ||
|
|
(!application.settings?.isBot && !application?.fqdn && application.buildPack !== 'compose')
|
|
) {
|
|
foundUnconfiguredApplication = true;
|
|
}
|
|
}
|
|
let foundUnconfiguredService = false;
|
|
for (const service of services) {
|
|
if (!service.fqdn) {
|
|
foundUnconfiguredService = true;
|
|
}
|
|
}
|
|
let foundUnconfiguredDatabase = false;
|
|
for (const database of databases) {
|
|
if (!database.version) {
|
|
foundUnconfiguredDatabase = true;
|
|
}
|
|
}
|
|
return {
|
|
foundUnconfiguredApplication,
|
|
foundUnconfiguredDatabase,
|
|
foundUnconfiguredService,
|
|
applications,
|
|
databases,
|
|
services,
|
|
gitSources,
|
|
destinations,
|
|
settings
|
|
};
|
|
})
|
|
});
|