Fix: was showing deleted team member dev environments (#1261)
* Env vars: don’t show deleted dev environments * Concurrency limits: don’t show deleted dev environments * Create/edit schedule: don’t show deleted dev environments
This commit is contained in:
@@ -7,7 +7,7 @@ import {
|
||||
} from "~/models/runtimeEnvironment.server";
|
||||
import { type User } from "~/models/user.server";
|
||||
import { getLimit } from "~/services/platform.v3.server";
|
||||
import { sortEnvironments } from "~/utils/environmentSort";
|
||||
import { filterOrphanedEnvironments, sortEnvironments } from "~/utils/environmentSort";
|
||||
import { concurrencyTracker } from "~/v3/services/taskRunConcurrencyTracker.server";
|
||||
import { BasePresenter } from "./basePresenter.server";
|
||||
|
||||
@@ -55,7 +55,11 @@ export class ConcurrencyPresenter extends BasePresenter {
|
||||
}
|
||||
|
||||
return {
|
||||
environments: this.environmentConcurrency(project.id, userId, project.environments),
|
||||
environments: this.environmentConcurrency(
|
||||
project.id,
|
||||
userId,
|
||||
filterOrphanedEnvironments(project.environments)
|
||||
),
|
||||
};
|
||||
}
|
||||
|
||||
|
||||
@@ -1,6 +1,8 @@
|
||||
import { RuntimeEnvironmentType } from "@trigger.dev/database";
|
||||
import { PrismaClient, prisma } from "~/db.server";
|
||||
import { displayableEnvironment } from "~/models/runtimeEnvironment.server";
|
||||
import { logger } from "~/services/logger.server";
|
||||
import { filterOrphanedEnvironments } from "~/utils/environmentSort";
|
||||
import { getTimezones } from "~/utils/timezones.server";
|
||||
|
||||
type EditScheduleOptions = {
|
||||
@@ -68,9 +70,11 @@ export class EditSchedulePresenter {
|
||||
},
|
||||
});
|
||||
|
||||
const possibleEnvironments = project.environments.map((environment) => {
|
||||
return displayableEnvironment(environment, userId);
|
||||
});
|
||||
const possibleEnvironments = filterOrphanedEnvironments(project.environments).map(
|
||||
(environment) => {
|
||||
return displayableEnvironment(environment, userId);
|
||||
}
|
||||
);
|
||||
|
||||
return {
|
||||
possibleTasks: possibleTasks.map((task) => task.slug),
|
||||
@@ -115,13 +119,16 @@ export class EditSchedulePresenter {
|
||||
return {
|
||||
...schedule,
|
||||
cron: schedule.generatorExpression,
|
||||
environments: schedule.instances.map((instance) => {
|
||||
environments: schedule.instances.flatMap((instance) => {
|
||||
const environment = possibleEnvironments.find((env) => env.id === instance.environmentId);
|
||||
if (!environment) {
|
||||
throw new Error(`Environment with id ${instance.environmentId} not found`);
|
||||
logger.error(
|
||||
`EditSchedulePresenter: environment with id ${instance.environmentId} not found`
|
||||
);
|
||||
return [];
|
||||
}
|
||||
|
||||
return environment;
|
||||
return [environment];
|
||||
}),
|
||||
};
|
||||
}
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
import { PrismaClient, prisma } from "~/db.server";
|
||||
import { Project } from "~/models/project.server";
|
||||
import { User } from "~/models/user.server";
|
||||
import { sortEnvironments } from "~/utils/environmentSort";
|
||||
import { filterOrphanedEnvironments, sortEnvironments } from "~/utils/environmentSort";
|
||||
import { EnvironmentVariablesRepository } from "~/v3/environmentVariables/environmentVariablesRepository.server";
|
||||
|
||||
type Result = Awaited<ReturnType<EnvironmentVariablesPresenter["call"]>>;
|
||||
@@ -78,11 +78,11 @@ export class EnvironmentVariablesPresenter {
|
||||
where: {
|
||||
project: {
|
||||
slug: projectSlug,
|
||||
}
|
||||
},
|
||||
},
|
||||
});
|
||||
|
||||
const sortedEnvironments = sortEnvironments(environments);
|
||||
const sortedEnvironments = sortEnvironments(filterOrphanedEnvironments(environments));
|
||||
|
||||
const repository = new EnvironmentVariablesRepository(this.#prismaClient);
|
||||
const variables = await repository.getProject(project.id);
|
||||
@@ -104,12 +104,12 @@ export class EnvironmentVariablesPresenter {
|
||||
}, {} as Record<string, { value: string | undefined; environment: { type: string; id: string } }>),
|
||||
};
|
||||
}),
|
||||
environments: sortedEnvironments.filter(
|
||||
(e) => e.orgMember?.userId === userId || e.orgMember === null
|
||||
).map((environment) => ({
|
||||
id: environment.id,
|
||||
type: environment.type,
|
||||
})),
|
||||
environments: sortedEnvironments
|
||||
.filter((e) => e.orgMember?.userId === userId || e.orgMember === null)
|
||||
.map((environment) => ({
|
||||
id: environment.id,
|
||||
type: environment.type,
|
||||
})),
|
||||
hasStaging: environments.some((environment) => environment.type === "STAGING"),
|
||||
};
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user