refactor: retrieve the correct names when adding a prefix

This commit is contained in:
Mauricio Siu
2024-09-03 23:22:24 -06:00
parent a3be030fac
commit 9c89208d83
4 changed files with 22 additions and 8 deletions

View File

@@ -152,12 +152,8 @@ export const composeRouter = createTRPCRouter({
const compose = await findComposeById(input.composeId); const compose = await findComposeById(input.composeId);
const domains = await findDomainsByComposeId(input.composeId); const domains = await findDomainsByComposeId(input.composeId);
let composeFile = await addDomainToCompose(compose, domains); const composeFile = await addDomainToCompose(compose, domains);
if (compose.randomize && composeFile && compose.prefix) {
const result = randomizeSpecificationFile(composeFile, compose.prefix);
composeFile = result;
}
return dump(composeFile, { return dump(composeFile, {
lineWidth: 1000, lineWidth: 1000,
}); });

View File

@@ -19,6 +19,7 @@ import { eq } from "drizzle-orm";
import { getDokployUrl } from "./admin"; import { getDokployUrl } from "./admin";
import { createDeploymentCompose, updateDeploymentStatus } from "./deployment"; import { createDeploymentCompose, updateDeploymentStatus } from "./deployment";
import { validUniqueServerAppName } from "./project"; import { validUniqueServerAppName } from "./project";
import { randomizeSpecificationFile } from "@/server/utils/docker/compose";
export type Compose = typeof compose.$inferSelect; export type Compose = typeof compose.$inferSelect;
@@ -117,7 +118,16 @@ export const loadServices = async (
await cloneCompose(compose); await cloneCompose(compose);
} }
const composeData = await loadDockerCompose(compose); let composeData = await loadDockerCompose(compose);
if (compose.randomize && composeData) {
const randomizedCompose = randomizeSpecificationFile(
composeData,
compose.prefix,
);
composeData = randomizedCompose;
}
if (!composeData?.services) { if (!composeData?.services) {
throw new TRPCError({ throw new TRPCError({
code: "NOT_FOUND", code: "NOT_FOUND",

View File

@@ -29,8 +29,11 @@ export const randomizeComposeFile = async (
export const randomizeSpecificationFile = ( export const randomizeSpecificationFile = (
composeSpec: ComposeSpecification, composeSpec: ComposeSpecification,
prefix: string, prefix?: string,
) => { ) => {
if (!prefix) {
return composeSpec;
}
const newComposeFile = addPrefixToAllProperties(composeSpec, prefix); const newComposeFile = addPrefixToAllProperties(composeSpec, prefix);
return newComposeFile; return newComposeFile;
}; };

View File

@@ -94,12 +94,17 @@ export const addDomainToCompose = async (
domains: Domain[], domains: Domain[],
) => { ) => {
const { appName } = compose; const { appName } = compose;
const result = await loadDockerCompose(compose); let result = await loadDockerCompose(compose);
if (!result || domains.length === 0) { if (!result || domains.length === 0) {
return null; return null;
} }
if (compose.randomize) {
const randomized = randomizeSpecificationFile(result, compose.prefix);
result = randomized;
}
for (const domain of domains) { for (const domain of domains) {
const { serviceName, https } = domain; const { serviceName, https } = domain;
if (!serviceName) { if (!serviceName) {