increase timeout for neatqueue API, refactor error handling in refresh-history-by-date route

This commit is contained in:
2025-07-12 11:31:30 +02:00
parent 5c02fd6d57
commit c54ce4bec1
2 changed files with 14 additions and 11 deletions

View File

@@ -14,7 +14,7 @@ export async function POST(request: Request) {
try { try {
// Parse request body to get date range parameters // Parse request body to get date range parameters
const body = await request.json().catch(() => ({})) const body = await request.json().catch((e) => console.log(e))
const startDate = body.start_date const startDate = body.start_date
const endDate = body.end_date const endDate = body.end_date
@@ -26,16 +26,16 @@ export async function POST(request: Request) {
if (endDate) { if (endDate) {
console.log(`End date: ${endDate}`) console.log(`End date: ${endDate}`)
} }
await syncHistoryByDateRange(startDate, endDate) await syncHistoryByDateRange(startDate, endDate)
} catch (err) { } catch (err) {
console.error('history refresh by date range failed:', err) console.error('history refresh by date range failed:', err)
return new Response('internal error', { status: 500 }) return new Response('internal error', { status: 500 })
} }
return Response.json({ success: true }) return Response.json({ success: true })
} catch (err) { } catch (err) {
console.error('refresh failed:', err) console.error('refresh failed:', err)
return new Response('internal error', { status: 500 }) return new Response('internal error', { status: 500 })
} }
} }

View File

@@ -1,11 +1,11 @@
import { createTRPCRouter, publicProcedure } from '@/server/api/trpc' import { createTRPCRouter, publicProcedure } from '@/server/api/trpc'
import { db } from '@/server/db' import { db } from '@/server/db'
import { metadata, player_games, raw_history } from '@/server/db/schema' import { metadata, player_games, raw_history } from '@/server/db/schema'
import { neatqueue_service } from '@/server/services/neatqueue.service'
import { and, desc, eq, gt, lt, sql } from 'drizzle-orm' import { and, desc, eq, gt, lt, sql } from 'drizzle-orm'
import ky from 'ky' import ky from 'ky'
import { chunk } from 'remeda' import { chunk } from 'remeda'
import { z } from 'zod' import { z } from 'zod'
import { neatqueue_service } from '@/server/services/neatqueue.service'
export const history_router = createTRPCRouter({ export const history_router = createTRPCRouter({
getTranscript: publicProcedure getTranscript: publicProcedure
@@ -15,7 +15,7 @@ export const history_router = createTRPCRouter({
}) })
) )
.query(async ({ input }) => { .query(async ({ input }) => {
return await neatqueue_service.get_transcript(input.gameNumber); return await neatqueue_service.get_transcript(input.gameNumber)
}), }),
games_per_hour: publicProcedure games_per_hour: publicProcedure
.input( .input(
@@ -198,12 +198,15 @@ export async function syncHistoryByDateRange(
searchParams.end_date = end_date searchParams.end_date = end_date
} }
const data = await ky const response = await ky.get(
.get('https://api.neatqueue.com/api/history/1226193436521267223', { 'https://api.neatqueue.com/api/history/1226193436521267223',
{
searchParams, searchParams,
timeout: 60000, timeout: 1000000,
}) }
.json<any>() )
const data = await response.json<any>()
const chunkedData = chunk(data.data, 100) const chunkedData = chunk(data.data, 100)
for (const chunk of chunkedData) { for (const chunk of chunkedData) {