diff --git a/web/pages/api/v0/_types.ts b/web/pages/api/v0/_types.ts index be1eaecd..6dc4b245 100644 --- a/web/pages/api/v0/_types.ts +++ b/web/pages/api/v0/_types.ts @@ -29,7 +29,7 @@ export type LiteMarket = { } export type FullMarket = LiteMarket & { - bets: Bet[] + bets: Exclude[] comments: Comment[] } diff --git a/web/pages/api/v0/market/[id].ts b/web/pages/api/v0/market/[id].ts index 7e1674ba..c6dee26a 100644 --- a/web/pages/api/v0/market/[id].ts +++ b/web/pages/api/v0/market/[id].ts @@ -1,5 +1,5 @@ import { NextApiRequest, NextApiResponse } from 'next' -import { listAllBets } from '../../../../lib/firebase/bets' +import { Bet, listAllBets } from '../../../../lib/firebase/bets' import { listAllComments } from '../../../../lib/firebase/comments' import { getContractFromId } from '../../../../lib/firebase/contracts' import { FullMarket, ApiError, toLiteMarket } from '../_types' @@ -11,12 +11,17 @@ export default async function handler( const { id } = req.query const contractId = id as string - const [contract, bets, comments] = await Promise.all([ + const [contract, allBets, comments] = await Promise.all([ getContractFromId(contractId), listAllBets(contractId), listAllComments(contractId), ]) + const bets = allBets.map(({ userId, ...bet }) => bet) as Exclude< + Bet, + 'userId' + >[] + if (!contract) { res.status(404).json({ error: 'Contract not found' }) return diff --git a/web/pages/api/v0/slug/[slug].ts b/web/pages/api/v0/slug/[slug].ts index 086cdf38..07c39a91 100644 --- a/web/pages/api/v0/slug/[slug].ts +++ b/web/pages/api/v0/slug/[slug].ts @@ -1,5 +1,5 @@ import { NextApiRequest, NextApiResponse } from 'next' -import { listAllBets } from '../../../../lib/firebase/bets' +import { Bet, listAllBets } from '../../../../lib/firebase/bets' import { listAllComments } from '../../../../lib/firebase/comments' import { getContractFromSlug } from '../../../../lib/firebase/contracts' import { FullMarket, ApiError, toLiteMarket } from '../_types' @@ -17,11 +17,16 @@ export default async function handler( return } - const [bets, comments] = await Promise.all([ + const [allBets, comments] = await Promise.all([ listAllBets(contract.id), listAllComments(contract.id), ]) + const bets = allBets.map(({ userId, ...bet }) => bet) as Exclude< + Bet, + 'userId' + >[] + // Cache on Vercel edge servers for 2min res.setHeader('Cache-Control', 'max-age=0, s-maxage=120') return res.status(200).json({