Skip to content

Commit f71aab6

Browse files
committed
fix: await async cache calls regressed during merge conflict resolution
1 parent 76c61f6 commit f71aab6

1 file changed

Lines changed: 15 additions & 16 deletions

File tree

backend/src/index.ts

Lines changed: 15 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -499,14 +499,14 @@ app.get('/api/campaigns/trending', (req: Request, res: Response) => {
499499
res.send(responseBody);
500500
});
501501

502-
app.get('/api/campaigns/:id', (req: Request, res: Response) => {
502+
app.get('/api/campaigns/:id', async (req: Request, res: Response) => {
503503
const parsedId = parseCampaignId(req.params.id);
504504
if (!parsedId.ok) {
505505
sendValidationError(parsedId.issues);
506506
}
507507

508508
const cacheKey = `campaigns:detail:${parsedId.value}`;
509-
const cached = getCampaignCacheEntry(cacheKey);
509+
const cached = await getCampaignCacheEntry(cacheKey);
510510
if (cached) {
511511
res.setHeader('Cache-Control', 'max-age=30');
512512
res.setHeader('X-Cache', 'HIT');
@@ -521,7 +521,7 @@ app.get('/api/campaigns/:id', (req: Request, res: Response) => {
521521
}
522522

523523
const responseBody = JSON.stringify({ data: campaign });
524-
setCampaignCacheEntry(cacheKey, responseBody);
524+
await setCampaignCacheEntry(cacheKey, responseBody);
525525

526526
res.setHeader('Cache-Control', 'max-age=30');
527527
res.setHeader('X-Cache', 'MISS');
@@ -532,29 +532,29 @@ app.get('/api/campaigns/:id', (req: Request, res: Response) => {
532532
app.delete(
533533
'/api/campaigns/:id',
534534
applyRateLimit(WRITE_RATE_LIMIT_MAX_REQUESTS),
535-
(req: Request, res: Response) => {
535+
async (req: Request, res: Response) => {
536536
const parsedId = parseCampaignId(req.params.id);
537537
if (!parsedId.ok) {
538538
sendValidationError(parsedId.issues);
539539
}
540540

541541
const campaign = softDeleteCampaign(parsedId.value);
542-
invalidateCampaignCache();
542+
await invalidateCampaignCache();
543543
res.json({ data: { ...campaign, progress: calculateProgress(campaign) } });
544544
},
545545
);
546546

547547
app.post(
548548
'/api/campaigns/:id/restore',
549549
applyRateLimit(WRITE_RATE_LIMIT_MAX_REQUESTS),
550-
(req: Request, res: Response) => {
550+
async (req: Request, res: Response) => {
551551
const parsedId = parseCampaignId(req.params.id);
552552
if (!parsedId.ok) {
553553
sendValidationError(parsedId.issues);
554554
}
555555

556556
const campaign = restoreCampaign(parsedId.value);
557-
invalidateCampaignCache();
557+
await invalidateCampaignCache();
558558
res.json({ data: { ...campaign, progress: calculateProgress(campaign) } });
559559
},
560560
);
@@ -658,7 +658,7 @@ app.post(
658658

659659
const body = req.body as z.infer<typeof reconcilePledgePayloadSchema>;
660660
const result = reconcileOnChainPledge(parsedId.value, body);
661-
invalidateCampaignCache();
661+
await invalidateCampaignCache();
662662
res.status(result.existing ? 200 : 201).json({
663663
data: {
664664
campaign: { ...result.campaign, progress: calculateProgress(result.campaign) },
@@ -897,7 +897,7 @@ app.get('/api/leaderboard', (req: Request, res: Response) => {
897897
});
898898

899899
// Legacy route for backward compatibility
900-
app.get('/api/leaderboard', (req: Request, res: Response) => {
900+
app.get('/api/leaderboard', async (req: Request, res: Response) => {
901901
const queryResult = parseLeaderboardQuery(req.query as Record<string, unknown>);
902902
if (!queryResult.ok) {
903903
sendValidationError(queryResult.issues);
@@ -907,7 +907,7 @@ app.get('/api/leaderboard', (req: Request, res: Response) => {
907907

908908
// Build cache key based on type and limit
909909
const cacheKey = `campaign_leaderboard:${type}:${limit}`;
910-
const cached = getCampaignCacheEntry(cacheKey);
910+
const cached = await getCampaignCacheEntry(cacheKey);
911911

912912
if (cached) {
913913
res.setHeader('Cache-Control', 'max-age=300');
@@ -921,7 +921,7 @@ app.get('/api/leaderboard', (req: Request, res: Response) => {
921921
const leaderboard = getCampaignLeaderboard(type, limit);
922922
const responseBody = JSON.stringify({ data: leaderboard });
923923

924-
setCampaignCacheEntry(cacheKey, responseBody);
924+
await setCampaignCacheEntry(cacheKey, responseBody);
925925

926926
res.setHeader('Cache-Control', 'max-age=300');
927927
res.setHeader('X-Cache', 'MISS');
@@ -948,7 +948,7 @@ app.get('/api/leaderboard', (req: Request, res: Response) => {
948948
}
949949
});
950950

951-
app.get('/api/campaigns/leaderboard', (req: Request, res: Response) => {
951+
app.get('/api/campaigns/leaderboard', async (req: Request, res: Response) => {
952952
const queryResult = parseLeaderboardQuery(req.query as Record<string, unknown>);
953953
if (!queryResult.ok) {
954954
sendValidationError(queryResult.issues);
@@ -958,7 +958,7 @@ app.get('/api/campaigns/leaderboard', (req: Request, res: Response) => {
958958

959959
// Build cache key based on type and limit
960960
const cacheKey = `campaign_leaderboard:${type}:${limit}`;
961-
const cached = getCampaignCacheEntry(cacheKey);
961+
const cached = await getCampaignCacheEntry(cacheKey);
962962

963963
if (cached) {
964964
res.setHeader('Cache-Control', 'max-age=300');
@@ -972,7 +972,7 @@ app.get('/api/campaigns/leaderboard', (req: Request, res: Response) => {
972972
const leaderboard = getCampaignLeaderboard(type, limit);
973973
const responseBody = JSON.stringify({ data: leaderboard });
974974

975-
setCampaignCacheEntry(cacheKey, responseBody);
975+
await setCampaignCacheEntry(cacheKey, responseBody);
976976

977977
res.setHeader('Cache-Control', 'max-age=300');
978978
res.setHeader('X-Cache', 'MISS');
@@ -985,15 +985,14 @@ app.get('/api/campaigns/leaderboard', (req: Request, res: Response) => {
985985
event: 'campaign_leaderboard_error',
986986
requestId: (req as RequestWithId).requestId,
987987
type,
988-
limit,
989988
},
990989
config.logLevel,
991990
);
992991
res.status(500).json({
993992
success: false,
994993
error: {
995994
code: 'INTERNAL_SERVER_ERROR',
996-
message: 'Failed to fetch campaign leaderboard',
995+
message: 'Failed to fetch leaderboard',
997996
requestId: (req as RequestWithId).requestId,
998997
},
999998
});

0 commit comments

Comments
 (0)