Switch to using a different method of database access

This commit is contained in:
2025-11-08 19:13:23 -07:00
parent 01e0c233d7
commit 3fe9788a4f
9 changed files with 304 additions and 240 deletions

View File

@@ -1,35 +1,45 @@
import { bigint, boolean, int, mysqlTable, text, varchar } from "drizzle-orm/mysql-core";
import {
bigint,
boolean,
int,
mysqlTable,
text,
varchar
} from 'drizzle-orm/mysql-core'
export const launcherGames = mysqlTable('launchergames', {
id: int('id').primaryKey().autoincrement(),
name: text('name').notNull(),
official: boolean('official').notNull().default(false),
verified: boolean('verified').notNull().default(false),
developer: varchar('developer', { length: 32 }),
cutOff: int('cutOff').notNull().default(-1)
id: int('id').primaryKey().autoincrement(),
name: text('name').notNull(),
official: boolean('official').notNull().default(false),
verified: boolean('verified').notNull().default(false),
developer: varchar('developer', { length: 32 }),
cutOff: int('cutOff').notNull().default(-1)
})
export const launcherVersions = mysqlTable('launcherversions', {
id: varchar('id', { length: 24 }).primaryKey(),
versionName: text('versionName').notNull(),
releaseDate: bigint('releaseDate', { mode: 'number' }).notNull(),
downloadUrls: text('downloadUrls').notNull(),
platforms: text('platforms').notNull(),
executables: text('executables').notNull(),
hidden: boolean('hidden').notNull().default(false),
game: int('game').notNull().default(0).references(() => launcherGames.id),
place: int('place').notNull().default(0),
sha512sums: text('sha512sums').notNull().default("[]"),
sizes: text('sizes').notNull().default("[]")
id: varchar('id', { length: 24 }).primaryKey(),
versionName: text('versionName').notNull(),
releaseDate: bigint('releaseDate', { mode: 'number' }).notNull(),
downloadUrls: text('downloadUrls').notNull(),
platforms: text('platforms').notNull(),
executables: text('executables').notNull(),
hidden: boolean('hidden').notNull().default(false),
game: int('game')
.notNull()
.default(0)
.references(() => launcherGames.id),
place: int('place').notNull().default(0),
sha512sums: text('sha512sums').notNull().default('[]'),
sizes: text('sizes').notNull().default('[]')
})
export const launcherUpdates = mysqlTable('launcherupdates', {
id: varchar('id', { length: 24 }).primaryKey(),
releaseDate: bigint('releaseDate', { mode: 'number' }).notNull(),
downloadUrls: text('downloadUrls').notNull(),
platforms: text('platforms').notNull(),
executables: text('executables').notNull(),
hidden: boolean('hidden').notNull().default(false),
place: int('place').notNull().default(0),
sha512sums: text('sha512sums').notNull().default("[]")
id: varchar('id', { length: 24 }).primaryKey(),
releaseDate: bigint('releaseDate', { mode: 'number' }).notNull(),
downloadUrls: text('downloadUrls').notNull(),
platforms: text('platforms').notNull(),
executables: text('executables').notNull(),
hidden: boolean('hidden').notNull().default(false),
place: int('place').notNull().default(0),
sha512sums: text('sha512sums').notNull().default('[]')
})

View File

@@ -1,6 +1,22 @@
export function jsonResponse(data: any, status = 200) {
return new Response(JSON.stringify(data, null, 2), {
status,
headers: { "Content-Type": "application/json" }
})
}
import mysql from 'mysql2'
import { drizzle } from 'drizzle-orm/mysql2'
import { Connection } from 'mysql2/typings/mysql/lib/Connection'
export function jsonResponse (data: any, status = 200) {
return new Response(JSON.stringify(data, null, 2), {
status,
headers: { 'Content-Type': 'application/json' }
})
}
export function getDatabaseConnection () {
const connection = mysql.createConnection({
host: process.env.DB_HOST ?? 'localhost',
port: Number(process.env.DB_PORT) || 3306,
user: process.env.DB_USER ?? '',
password: process.env.DB_PASS ?? '',
database: process.env.DB_NAME ?? ''
})
return drizzle(connection)
}