Skip to content

Commit 719ec50

Browse files
author
Andrew Farries
committed
WIP: Pass useSlowDatabase to getGitpodService
All calls to `getGitpodService` will have to pass a `useSlowDatabase` boolean (taken from the `FeatureFlagContext`) to indicate what kind of websocket connection should be used.
1 parent af0899a commit 719ec50

File tree

2 files changed

+27
-18
lines changed

2 files changed

+27
-18
lines changed

components/dashboard/src/admin/UserDetail.tsx

Lines changed: 21 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ import {
1515
import { AccountStatement, Subscription } from "@gitpod/gitpod-protocol/lib/accounting-protocol";
1616
import { Plans } from "@gitpod/gitpod-protocol/lib/plans";
1717
import dayjs from "dayjs";
18-
import { useEffect, useRef, useState } from "react";
18+
import { useEffect, useRef, useState, useContext } from "react";
1919
import CheckBox from "../components/CheckBox";
2020
import Modal from "../components/Modal";
2121
import { getGitpodService } from "../service/service";
@@ -26,8 +26,10 @@ import { BillingMode } from "@gitpod/gitpod-protocol/lib/billing-mode";
2626
import { AttributionId } from "@gitpod/gitpod-protocol/lib/attribution";
2727
import CaretDown from "../icons/CaretDown.svg";
2828
import ContextMenu from "../components/ContextMenu";
29+
import { FeatureFlagContext } from "../contexts/FeatureFlagContext";
2930

3031
export default function UserDetail(p: { user: User }) {
32+
const { useSlowDatabase } = useContext(FeatureFlagContext);
3133
const [activity, setActivity] = useState(false);
3234
const [user, setUser] = useState(p.user);
3335
const [billingMode, setBillingMode] = useState<BillingMode | undefined>(undefined);
@@ -42,16 +44,16 @@ export default function UserDetail(p: { user: User }) {
4244

4345
useEffect(() => {
4446
setUser(p.user);
45-
getGitpodService()
47+
getGitpodService(useSlowDatabase)
4648
.server.adminGetAccountStatement(p.user.id)
4749
.then((as) => setAccountStatement(as))
4850
.catch((e) => {
4951
console.error(e);
5052
});
51-
getGitpodService()
53+
getGitpodService(useSlowDatabase)
5254
.server.adminIsStudent(p.user.id)
5355
.then((isStud) => setIsStudent(isStud));
54-
getGitpodService()
56+
getGitpodService(useSlowDatabase)
5557
.server.adminGetBillingMode(AttributionId.render({ kind: "user", userId: p.user.id }))
5658
.then((bm) => setBillingMode(bm));
5759
}, [p.user]);
@@ -75,8 +77,8 @@ export default function UserDetail(p: { user: User }) {
7577
}
7678

7779
await updateUser(async (u) => {
78-
await getGitpodService().server.adminAddStudentEmailDomain(u.id, emailDomain);
79-
await getGitpodService()
80+
await getGitpodService(useSlowDatabase).server.adminAddStudentEmailDomain(u.id, emailDomain);
81+
await getGitpodService(useSlowDatabase)
8082
.server.adminIsStudent(u.id)
8183
.then((isStud) => setIsStudent(isStud));
8284
return u;
@@ -85,14 +87,14 @@ export default function UserDetail(p: { user: User }) {
8587

8688
const verifyUser = async () => {
8789
await updateUser(async (u) => {
88-
return await getGitpodService().server.adminVerifyUser(u.id);
90+
return await getGitpodService(useSlowDatabase).server.adminVerifyUser(u.id);
8991
});
9092
};
9193

9294
const toggleBlockUser = async () => {
9395
await updateUser(async (u) => {
9496
u.blocked = !u.blocked;
95-
await getGitpodService().server.adminBlockUser({
97+
await getGitpodService(useSlowDatabase).server.adminBlockUser({
9698
blocked: u.blocked,
9799
id: u.id,
98100
});
@@ -103,7 +105,7 @@ export default function UserDetail(p: { user: User }) {
103105
const deleteUser = async () => {
104106
await updateUser(async (u) => {
105107
u.markedDeleted = !u.markedDeleted;
106-
await getGitpodService().server.adminDeleteUser(u.id);
108+
await getGitpodService(useSlowDatabase).server.adminDeleteUser(u.id);
107109
return u;
108110
});
109111
};
@@ -166,7 +168,10 @@ export default function UserDetail(p: { user: User }) {
166168
{
167169
label: "Grant 20 Extra Hours",
168170
onClick: async () => {
169-
await getGitpodService().server.adminGrantExtraHours(user.id, 20);
171+
await getGitpodService(useSlowDatabase).server.adminGrantExtraHours(
172+
user.id,
173+
20,
174+
);
170175
setAccountStatement(
171176
await getGitpodService().server.adminGetAccountStatement(user.id),
172177
);
@@ -186,12 +191,14 @@ export default function UserDetail(p: { user: User }) {
186191
{
187192
label: (isProfessionalOpenSource ? "Disable" : "Enable") + " Professional OSS",
188193
onClick: async () => {
189-
await getGitpodService().server.adminSetProfessionalOpenSource(
194+
await getGitpodService(useSlowDatabase).server.adminSetProfessionalOpenSource(
190195
user.id,
191196
!isProfessionalOpenSource,
192197
);
193198
setAccountStatement(
194-
await getGitpodService().server.adminGetAccountStatement(user.id),
199+
await getGitpodService(useSlowDatabase).server.adminGetAccountStatement(
200+
user.id,
201+
),
195202
);
196203
},
197204
},
@@ -386,7 +393,7 @@ function getFlags(user: User, updateUser: UpdateUserFunction): Entry[] {
386393
checked,
387394
onClick: async () => {
388395
await updateUser(async (u) => {
389-
return await getGitpodService().server.adminModifyPermanentWorkspaceFeatureFlag({
396+
return await getGitpodService(useSlowDatabase).server.adminModifyPermanentWorkspaceFeatureFlag({
390397
id: user.id,
391398
changes: [
392399
{
@@ -409,7 +416,7 @@ function getRopEntries(user: User, updateUser: UpdateUserFunction): Entry[] {
409416
checked,
410417
onClick: async () => {
411418
await updateUser(async (u) => {
412-
return await getGitpodService().server.adminModifyRoleOrPermission({
419+
return await getGitpodService(useSlowDatabase).server.adminModifyRoleOrPermission({
413420
id: user.id,
414421
rpp: [
415422
{

components/dashboard/src/projects/Projects.tsx

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -20,8 +20,10 @@ import ContextMenu from "../components/ContextMenu";
2020
import ConfirmationModal from "../components/ConfirmationModal";
2121
import { prebuildStatusIcon } from "./Prebuilds";
2222
import Alert from "../components/Alert";
23+
import { FeatureFlagContext } from "../contexts/FeatureFlagContext";
2324

2425
export default function () {
26+
const { useSlowDatabase } = useContext(FeatureFlagContext);
2527
const location = useLocation();
2628
const history = useHistory();
2729

@@ -43,15 +45,15 @@ export default function () {
4345
return;
4446
}
4547
const infos = !!team
46-
? await getGitpodService().server.getTeamProjects(team.id)
47-
: await getGitpodService().server.getUserProjects();
48+
? await getGitpodService(useSlowDatabase).server.getTeamProjects(team.id)
49+
: await getGitpodService(useSlowDatabase).server.getUserProjects();
4850
setProjects(infos);
4951

5052
const map = new Map();
5153
await Promise.all(
5254
infos.map(async (p) => {
5355
try {
54-
const lastPrebuild = await getGitpodService().server.findPrebuilds({
56+
const lastPrebuild = await getGitpodService(useSlowDatabase).server.findPrebuilds({
5557
projectId: p.id,
5658
latest: true,
5759
});
@@ -73,7 +75,7 @@ export default function () {
7375

7476
const onRemoveProject = async (p: Project) => {
7577
setRemoveModalVisible(false);
76-
await getGitpodService().server.deleteProject(p.id);
78+
await getGitpodService(useSlowDatabase).server.deleteProject(p.id);
7779
await updateProjects();
7880
};
7981

0 commit comments

Comments
 (0)