Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
gitpod-io
GitHub Repository: gitpod-io/gitpod
Path: blob/main/components/gitpod-db/src/project-db.ts
2498 views
1
/**
2
* Copyright (c) 2021 Gitpod GmbH. All rights reserved.
3
* Licensed under the GNU Affero General Public License (AGPL).
4
* See License.AGPL.txt in the project root for license information.
5
*/
6
7
import { PartialProject, Project, ProjectEnvVar, ProjectEnvVarWithValue, ProjectUsage } from "@gitpod/gitpod-protocol";
8
import { TransactionalDB } from "./typeorm/transactional-db-impl";
9
10
export const ProjectDB = Symbol("ProjectDB");
11
export interface ProjectDB extends TransactionalDB<ProjectDB> {
12
findProjectById(projectId: string): Promise<Project | undefined>;
13
findProjectsByCloneUrl(cloneUrl: string, organizationId?: string): Promise<Project[]>;
14
findProjects(orgID: string, limit?: number): Promise<Project[]>;
15
findProjectsBySearchTerm(args: FindProjectsBySearchTermArgs): Promise<{ total: number; rows: Project[] }>;
16
storeProject(project: Project): Promise<Project>;
17
updateProject(partialProject: PartialProject): Promise<Project>;
18
markDeleted(projectId: string): Promise<void>;
19
findProjectEnvironmentVariableByName(projectId: string, name: string): Promise<ProjectEnvVar | undefined>;
20
addProjectEnvironmentVariable(projectId: string, envVar: ProjectEnvVarWithValue): Promise<ProjectEnvVar>;
21
updateProjectEnvironmentVariable(
22
projectId: string,
23
envVar: Partial<ProjectEnvVarWithValue>,
24
): Promise<ProjectEnvVar | undefined>;
25
getProjectEnvironmentVariables(projectId: string): Promise<ProjectEnvVar[]>;
26
getProjectEnvironmentVariableById(variableId: string): Promise<ProjectEnvVar | undefined>;
27
deleteProjectEnvironmentVariable(variableId: string): Promise<void>;
28
getProjectEnvironmentVariableValues(
29
envVars: Pick<ProjectEnvVar, "id" | "projectId">[],
30
): Promise<ProjectEnvVarWithValue[]>;
31
findCachedProjectOverview(projectId: string): Promise<Project.Overview | undefined>;
32
storeCachedProjectOverview(projectId: string, overview: Project.Overview): Promise<void>;
33
getProjectUsage(projectId: string): Promise<ProjectUsage | undefined>;
34
updateProjectUsage(projectId: string, usage: Partial<ProjectUsage>): Promise<void>;
35
}
36
37
export type FindProjectsBySearchTermArgs = {
38
offset: number;
39
limit: number;
40
orderBy: keyof Project;
41
orderDir: "ASC" | "DESC";
42
searchTerm?: string;
43
organizationId?: string;
44
prebuildsEnabled?: boolean;
45
};
46
47