Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
gitpod-io
GitHub Repository: gitpod-io/gitpod
Path: blob/main/components/gitpod-db/src/team-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 {
8
Team,
9
TeamMemberInfo,
10
TeamMemberRole,
11
TeamMembershipInvite,
12
OrganizationSettings,
13
OrgEnvVar,
14
OrgEnvVarWithValue,
15
} from "@gitpod/gitpod-protocol";
16
import { DBTeamMembership } from "./typeorm/entity/db-team-membership";
17
import { TransactionalDB } from "./typeorm/transactional-db-impl";
18
19
export const TeamDB = Symbol("TeamDB");
20
export interface TeamDB extends TransactionalDB<TeamDB> {
21
findTeams(
22
offset: number,
23
limit: number | undefined,
24
orderBy: keyof Team,
25
orderDir: "ASC" | "DESC",
26
searchTerm?: string,
27
): Promise<{ total: number; rows: Team[] }>;
28
findTeamById(teamId: string): Promise<Team | undefined>;
29
findTeamByMembershipId(membershipId: string): Promise<Team | undefined>;
30
findMembersByTeam(teamId: string): Promise<TeamMemberInfo[]>;
31
findTeamMembership(userId: string, teamId: string): Promise<DBTeamMembership | undefined>;
32
findTeamsByUser(userId: string): Promise<Team[]>;
33
findTeamsByUserAsSoleOwner(userId: string): Promise<Team[]>;
34
createTeam(userId: string, name: string): Promise<Team>;
35
updateTeam(
36
teamId: string,
37
team: Partial<Pick<Team, "name" | "maintenanceMode" | "maintenanceNotification">>,
38
): Promise<Team>;
39
addMemberToTeam(userId: string, teamId: string): Promise<"added" | "already_member">;
40
setTeamMemberRole(userId: string, teamId: string, role: TeamMemberRole): Promise<void>;
41
removeMemberFromTeam(userId: string, teamId: string): Promise<void>;
42
findTeamMembershipInviteById(inviteId: string): Promise<TeamMembershipInvite>;
43
findGenericInviteByTeamId(teamId: string): Promise<TeamMembershipInvite | undefined>;
44
resetGenericInvite(teamId: string): Promise<TeamMembershipInvite>;
45
deleteTeam(teamId: string): Promise<void>;
46
47
findOrgSettings(teamId: string): Promise<OrganizationSettings | undefined>;
48
setOrgSettings(
49
teamId: string,
50
settings: Partial<OrganizationSettings>,
51
merge: (
52
currentSettings: OrganizationSettings,
53
partialUpdate: Partial<OrganizationSettings>,
54
) => OrganizationSettings,
55
): Promise<OrganizationSettings>;
56
57
hasActiveSSO(organizationId: string): Promise<boolean>;
58
59
addOrgEnvironmentVariable(orgId: string, envVar: OrgEnvVarWithValue): Promise<OrgEnvVar>;
60
updateOrgEnvironmentVariable(orgId: string, envVar: Partial<OrgEnvVarWithValue>): Promise<OrgEnvVar | undefined>;
61
getOrgEnvironmentVariableById(id: string): Promise<OrgEnvVar | undefined>;
62
findOrgEnvironmentVariableByName(orgId: string, name: string): Promise<OrgEnvVar | undefined>;
63
getOrgEnvironmentVariables(orgId: string): Promise<OrgEnvVar[]>;
64
getOrgEnvironmentVariableValues(envVars: Pick<OrgEnvVar, "id" | "orgId">[]): Promise<OrgEnvVarWithValue[]>;
65
deleteOrgEnvironmentVariable(id: string): Promise<void>;
66
}
67
68