Skip to content

Commit 431e256

Browse files
committed
fix: remove turbo column
1 parent 9899ddc commit 431e256

File tree

11 files changed

+45
-44
lines changed

11 files changed

+45
-44
lines changed

src/graphql/helpers.ts

Lines changed: 1 addition & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -87,7 +87,6 @@ export function formatSpace({
8787
settings,
8888
domain,
8989
verified,
90-
turbo,
9190
turboExpiration,
9291
flagged,
9392
hibernated,
@@ -143,8 +142,7 @@ export function formatSpace({
143142
space.verified = verified ?? null;
144143
space.flagged = flagged ?? null;
145144
space.hibernated = hibernated ?? null;
146-
space.turbo =
147-
new Date((turboExpiration || 0) * 1000) > new Date() ? true : turbo ?? null;
145+
space.turbo = new Date((turboExpiration || 0) * 1000) > new Date();
148146
space.turboExpiration = turboExpiration ?? 0;
149147
space.rank = spaceMetadata?.rank ?? null;
150148

@@ -449,7 +447,6 @@ export function formatProposal(proposal) {
449447
settings: proposal.settings,
450448
domain: proposal.spaceDomain,
451449
verified: proposal.spaceVerified,
452-
turbo: proposal.spaceTurbo,
453450
turboExpiration: proposal.spaceTurboExpiration,
454451
flagged: proposal.spaceFlagged,
455452
hibernated: proposal.spaceHibernated,
@@ -476,7 +473,6 @@ export function formatVote(vote) {
476473
domain: vote.spaceDomain,
477474
settings: vote.settings,
478475
verified: vote.spaceVerified,
479-
turbo: vote.spaceTurbo,
480476
turboExpiration: vote.spaceTurboExpiration,
481477
flagged: vote.spaceFlagged,
482478
hibernated: vote.spaceHibernated,
@@ -491,7 +487,6 @@ export function formatFollow(follow) {
491487
settings: follow.settings,
492488
domain: follow.spaceDomain,
493489
verified: follow.spaceVerified,
494-
turbo: follow.spaceTurbo,
495490
turboExpiration: follow.spaceTurboExpiration,
496491
flagged: follow.spaceFlagged,
497492
hibernated: follow.spaceHibernated,
@@ -506,7 +501,6 @@ export function formatSubscription(subscription) {
506501
settings: subscription.settings,
507502
domain: subscription.spaceDomain,
508503
verified: subscription.spaceVerified,
509-
turbo: subscription.spaceTurbo,
510504
turboExpiration: subscription.spaceTurboExpiration,
511505
flagged: subscription.spaceFlagged,
512506
hibernated: subscription.spaceHibernated,

src/graphql/operations/follows.ts

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,6 @@ export default async function (parent, args) {
3636
spaces.domain as spaceDomain,
3737
spaces.flagged as spaceFlagged,
3838
spaces.verified as spaceVerified,
39-
spaces.turbo as spaceTurbo,
4039
spaces.turbo_expiration as spaceTurboExpiration,
4140
spaces.hibernated as spaceHibernated
4241
FROM follows f

src/graphql/operations/proposal.ts

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,6 @@ export default async function (parent, { id }) {
1313
spaces.domain as spaceDomain,
1414
spaces.flagged as spaceFlagged,
1515
spaces.verified as spaceVerified,
16-
spaces.turbo as spaceTurbo,
1716
spaces.turbo_expiration as spaceTurboExpiration,
1817
spaces.hibernated as spaceHibernated
1918
FROM proposals p

src/graphql/operations/proposals.ts

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -95,7 +95,6 @@ export default async function (parent, args) {
9595
spaces.domain as spaceDomain,
9696
spaces.flagged as spaceFlagged,
9797
spaces.verified as spaceVerified,
98-
spaces.turbo as spaceTurbo,
9998
spaces.turbo_expiration as spaceTurboExpiration,
10099
spaces.hibernated as spaceHibernated
101100
FROM proposals p

src/graphql/operations/subscriptions.ts

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,6 @@ export default async function (parent, args) {
3737
spaces.domain as spaceDomain,
3838
spaces.flagged as spaceFlagged,
3939
spaces.verified as spaceVerified,
40-
spaces.turbo as spaceTurbo,
4140
spaces.turbo_expiration as spaceTurboExpiration,
4241
spaces.hibernated as spaceHibernated
4342
FROM subscriptions s

src/graphql/operations/votes.ts

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -101,7 +101,6 @@ async function query(parent, args, context?, info?) {
101101
spaces.domain as spaceDomain,
102102
spaces.flagged as spaceFlagged,
103103
spaces.verified as spaceVerified,
104-
spaces.turbo as spaceTurbo,
105104
spaces.turbo_expiration as spaceTurboExpiration,
106105
spaces.hibernated as spaceHibernated
107106
FROM proposals p

src/helpers/metrics.ts

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -95,12 +95,19 @@ new client.Gauge({
9595
help: 'Number of spaces per status',
9696
labelNames: ['status'],
9797
async collect() {
98-
['verified', 'flagged', 'turbo', 'hibernated'].forEach(async status => {
98+
const statuses = {
99+
verified: 'verified',
100+
flagged: 'flagged',
101+
turbo: 'turbo_expiration',
102+
hibernated: 'hibernated'
103+
};
104+
105+
Object.entries(statuses).forEach(async ([status, column]) => {
99106
this.set(
100107
{ status },
101108
(
102109
await db.queryAsync(
103-
`SELECT COUNT(id) as count FROM spaces WHERE ${status} = 1`
110+
`SELECT COUNT(id) as count FROM spaces WHERE ${column} > 0`
104111
)
105112
)[0].count
106113
);

src/helpers/schema.sql

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,6 @@ CREATE TABLE spaces (
66
deleted INT NOT NULL DEFAULT '0',
77
flagged INT NOT NULL DEFAULT '0',
88
hibernated INT NOT NULL DEFAULT '0',
9-
turbo INT NOT NULL DEFAULT '0',
109
turbo_expiration BIGINT NOT NULL DEFAULT '0',
1110
proposal_count INT NOT NULL DEFAULT '0',
1211
vote_count INT NOT NULL DEFAULT '0',
@@ -20,7 +19,6 @@ CREATE TABLE spaces (
2019
INDEX verified (verified),
2120
INDEX flagged (flagged),
2221
INDEX hibernated (hibernated),
23-
INDEX turbo (turbo),
2422
INDEX proposal_count (proposal_count),
2523
INDEX vote_count (vote_count),
2624
INDEX follower_count (follower_count),

src/helpers/spaces.ts

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -56,8 +56,8 @@ type Metadata = {
5656
pluginNames: string[];
5757
};
5858

59-
function isTurbo(turbo: boolean, turboExpiration: number): boolean {
60-
return turbo || turboExpiration > Date.now() / 1e3;
59+
function isTurbo(turboExpiration: number): boolean {
60+
return turboExpiration > Date.now() / 1e3;
6161
}
6262

6363
function getPopularity(space: Metadata): number {
@@ -128,7 +128,7 @@ function mapSpaces(spaces: Record<string, any>) {
128128
name: space.name,
129129
verified: space.verified,
130130
flagged: space.flagged,
131-
turbo: isTurbo(space.turbo, space.turboExpiration),
131+
turbo: isTurbo(space.turboExpiration),
132132
turboExpiration: space.turboExpiration,
133133
hibernated: space.hibernated,
134134
parent: space.parent,
@@ -160,7 +160,7 @@ async function loadSpaces() {
160160
const startTime = +Date.now();
161161

162162
const query = `
163-
SELECT id, settings, flagged, verified, turbo, turbo_expiration, hibernated, follower_count, proposal_count, vote_count
163+
SELECT id, settings, flagged, verified, turbo_expiration, hibernated, follower_count, proposal_count, vote_count
164164
FROM spaces
165165
WHERE deleted = 0
166166
ORDER BY id ASC
@@ -174,7 +174,7 @@ async function loadSpaces() {
174174
...JSON.parse(space.settings),
175175
flagged: space.flagged === 1,
176176
verified: space.verified === 1,
177-
turbo: isTurbo(!!space.turbo, space.turbo_expiration),
177+
turbo: isTurbo(space.turbo_expiration),
178178
turboExpiration: space.turbo_expiration,
179179
hibernated: space.hibernated === 1,
180180
follower_count: space.follower_count,
@@ -307,7 +307,7 @@ async function loadSpacesMetrics() {
307307

308308
export async function getSpace(id: string) {
309309
const query = `
310-
SELECT settings, domain, flagged, verified, turbo, turbo_expiration, hibernated, deleted, follower_count, proposal_count, vote_count
310+
SELECT settings, domain, flagged, verified, turbo_expiration, hibernated, deleted, follower_count, proposal_count, vote_count
311311
FROM spaces
312312
WHERE id = ?
313313
LIMIT 1`;
@@ -321,7 +321,7 @@ export async function getSpace(id: string) {
321321
domain: space.domain,
322322
flagged: space.flagged === 1,
323323
verified: space.verified === 1,
324-
turbo: isTurbo(!!space.turbo, space.turbo_expiration),
324+
turbo: isTurbo(space.turbo_expiration),
325325
turboExpiration: space.turbo_expiration,
326326
hibernated: space.hibernated === 1,
327327
deleted: space.deleted === 1

test/e2e/space.test.ts

Lines changed: 28 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -23,12 +23,9 @@ describe('GET /api/space/:key', () => {
2323
});
2424

2525
describe('when the space exists', () => {
26-
let response;
27-
beforeAll(async () => {
28-
response = await fetch(`${HOST}/api/spaces/${fixtures[0].id}`);
29-
});
26+
it('returns the correct HTTP response', async () => {
27+
const response = await fetch(`${HOST}/api/spaces/${fixtures[0].id}`);
3028

31-
it('returns the correct HTTP response', () => {
3229
expect(response.status);
3330
expect(response.headers.get('content-type')).toContain(
3431
'application/json'
@@ -37,18 +34,20 @@ describe('GET /api/space/:key', () => {
3734

3835
it('returns the space data', async () => {
3936
const space = fixtures[0];
37+
const response = await fetch(`${HOST}/api/spaces/${space.id}`);
38+
4039
const expectedSpace = {
4140
flagged: space.flagged,
4241
verified: space.verified,
43-
turbo: space.turbo,
42+
turbo: false,
4443
turboExpiration: space.turbo_expiration,
4544
hibernated: space.hibernated,
4645
deleted: false,
4746
domain: space.domain,
4847
...space.settings
4948
};
5049

51-
expect(response.json()).resolves.toEqual(expectedSpace);
50+
expect(await response.json()).toEqual(expectedSpace);
5251
});
5352
});
5453

@@ -60,7 +59,7 @@ describe('GET /api/space/:key', () => {
6059
expect(response.headers.get('content-type')).toContain(
6160
'application/json'
6261
);
63-
expect(response.json()).resolves.toEqual({
62+
expect(await response.json()).toEqual({
6463
error: 'unauthorized',
6564
error_description: 'not_found'
6665
});
@@ -71,19 +70,29 @@ describe('GET /api/space/:key', () => {
7170
it('returns the space data with a deleted:true', async () => {
7271
const response = await fetch(`${HOST}/api/spaces/${fixtures[1].id}`);
7372

74-
const space = fixtures[1];
75-
const expectedSpace = {
76-
flagged: space.flagged,
77-
verified: space.verified,
78-
turbo: space.turbo,
79-
turboExpiration: space.turbo_expiration,
80-
hibernated: space.hibernated,
81-
deleted: true,
82-
domain: space.domain,
83-
...space.settings
73+
expect(await response.json()).toEqual(
74+
expect.objectContaining({ deleted: true })
75+
);
76+
});
77+
});
78+
79+
describe('when the space is turbo', () => {
80+
it('returns the space as turbo', async () => {
81+
const turboExpiration = Math.floor(Date.now() / 1e3) + 86400; // 1 day from now
82+
const turboSpace = {
83+
...fixtures[0],
84+
id: 'turbo-space.eth',
85+
turbo_expiration: turboExpiration,
86+
settings: JSON.stringify(fixtures[0].settings),
87+
domain: 'turbo.com'
8488
};
89+
await db.queryAsync('INSERT INTO spaces SET ?', turboSpace);
90+
91+
const response = await fetch(`${HOST}/api/spaces/${turboSpace.id}`);
8592

86-
expect(response.json()).resolves.toEqual(expectedSpace);
93+
expect(await response.json()).toEqual(
94+
expect.objectContaining({ turbo: true, turboExpiration })
95+
);
8796
});
8897
});
8998
});

0 commit comments

Comments
 (0)