From c179b99806f1680568b3847df3f82697f305b390 Mon Sep 17 00:00:00 2001 From: Lncvrt Date: Wed, 21 Jan 2026 21:56:24 -0700 Subject: [PATCH] Add an endpoint for getting the latest berry dash version number --- src/index.ts | 8 ++++++ src/routes/berrydash/latest-version/get.ts | 30 ++++++++++++++++++++++ 2 files changed, 38 insertions(+) create mode 100644 src/routes/berrydash/latest-version/get.ts diff --git a/src/index.ts b/src/index.ts index 54051cd..8762b13 100644 --- a/src/index.ts +++ b/src/index.ts @@ -11,6 +11,8 @@ import { handler as launcherLatestHandler } from './routes/launcher/latest' import { handler as launcherLoaderLatestHandler } from './routes/launcher/loader/latest' import { handler as launcherLoaderUpdateDataHandler } from './routes/launcher/loader/update-data' +import { handler as berryDashLatestVersionGetHandler } from './routes/berrydash/latest-version/get' + import { handler as berrydashLeaderboardGetHandler } from './routes/berrydash/leaderboard/get' import { handler as berrydashProfileGetHandler } from './routes/berrydash/profile/get' @@ -103,6 +105,12 @@ app.get( }) } ) +app.get('/berrydash/latest-version', berryDashLatestVersionGetHandler, { + detail: { + description: 'The endpoint for getting the latest berry dash version.', + tags: ['Berry Dash'] + } +}) app.get( '/berrydash/leaderboards/score', context => berrydashLeaderboardGetHandler(context, 0), diff --git a/src/routes/berrydash/latest-version/get.ts b/src/routes/berrydash/latest-version/get.ts new file mode 100644 index 0000000..07fb359 --- /dev/null +++ b/src/routes/berrydash/latest-version/get.ts @@ -0,0 +1,30 @@ +import { games, launcherVersionManifest } from '../../../lib/tables' +import { and, asc, desc, eq } from 'drizzle-orm' +import { getDatabaseConnection, jsonResponse } from '../../../lib/util' +import { Context } from 'elysia' + +export async function handler (context: Context) { + const dbResult = getDatabaseConnection(0) + if (!dbResult) + return jsonResponse({ error: 'Failed to connect to database' }, 500) + const { connection, db } = dbResult + + const version = await db + .select({ + versionName: launcherVersionManifest.versionName + }) + .from(launcherVersionManifest) + .where( + and( + eq(launcherVersionManifest.hidden, false), + eq(launcherVersionManifest.game, 1) + ) + ) + .orderBy(desc(launcherVersionManifest.place)) + .limit(1) + .execute() + + connection.end() + + return version[0] ? version[0].versionName : '-1' +}