feat(api): wire all CRUD routes into Elysia server
This commit is contained in:
@@ -1,8 +1,22 @@
|
|||||||
import { Elysia } from "elysia"
|
import { Elysia } from "elysia"
|
||||||
import { auth } from "@/lib/auth"
|
import { auth } from "@/lib/auth"
|
||||||
import { rateLimit } from "@/lib/auth/rate-limit"
|
import { rateLimit } from "@/lib/auth/rate-limit"
|
||||||
import { healthRoutes } from "@/lib/api/health"
|
import {
|
||||||
import { userRoutes } from "@/lib/api/user"
|
healthRoutes,
|
||||||
|
userRoutes,
|
||||||
|
gamesRoutes,
|
||||||
|
gameVersionsRoutes,
|
||||||
|
hardwareRoutes,
|
||||||
|
performanceRoutes,
|
||||||
|
performanceVerifyRoutes,
|
||||||
|
settingCategoriesRoutes,
|
||||||
|
settingDefinitionsRoutes,
|
||||||
|
settingsFullRoutes,
|
||||||
|
presetsRoutes,
|
||||||
|
presetUpvoteRoutes,
|
||||||
|
presetSettingsRoutes,
|
||||||
|
commentsRoutes,
|
||||||
|
} from "@/lib/api"
|
||||||
|
|
||||||
const betterAuth = new Elysia({ name: "better-auth" })
|
const betterAuth = new Elysia({ name: "better-auth" })
|
||||||
.mount(auth.handler)
|
.mount(auth.handler)
|
||||||
@@ -25,18 +39,40 @@ const betterAuth = new Elysia({ name: "better-auth" })
|
|||||||
|
|
||||||
export const app = new Elysia({ prefix: "/api" })
|
export const app = new Elysia({ prefix: "/api" })
|
||||||
.onError(({ code, error, set, request }) => {
|
.onError(({ code, error, set, request }) => {
|
||||||
console.error(`[API Error] ${code} ${request.url}`,
|
console.error(
|
||||||
error instanceof Error ? error.message : error
|
`[API Error] ${code} ${request.url}`,
|
||||||
|
error instanceof Error ? error.message : error,
|
||||||
)
|
)
|
||||||
set.status = code === "NOT_FOUND" ? 404 : 500
|
set.status = code === "NOT_FOUND" ? 404 : 500
|
||||||
return {
|
return {
|
||||||
error: code === "NOT_FOUND" ? "Not found" : "Internal server error",
|
error: code === "NOT_FOUND" ? "Not found" : "Internal server error",
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
.use(healthRoutes)
|
|
||||||
.use(rateLimit(60, 100))
|
.use(rateLimit(60, 100))
|
||||||
.use(betterAuth)
|
.use(betterAuth)
|
||||||
|
// Health
|
||||||
|
.use(healthRoutes)
|
||||||
|
// Users
|
||||||
.use(userRoutes)
|
.use(userRoutes)
|
||||||
|
// Games + Versions
|
||||||
|
.use(gamesRoutes)
|
||||||
|
.use(gameVersionsRoutes)
|
||||||
|
// Hardware
|
||||||
|
.use(hardwareRoutes)
|
||||||
|
// Performance
|
||||||
|
.use(performanceRoutes)
|
||||||
|
.use(performanceVerifyRoutes)
|
||||||
|
// Settings
|
||||||
|
.use(settingCategoriesRoutes)
|
||||||
|
.use(settingDefinitionsRoutes)
|
||||||
|
.use(settingsFullRoutes)
|
||||||
|
// Presets
|
||||||
|
.use(presetsRoutes)
|
||||||
|
.use(presetUpvoteRoutes)
|
||||||
|
.use(presetSettingsRoutes)
|
||||||
|
// Comments
|
||||||
|
.use(commentsRoutes)
|
||||||
|
// Root
|
||||||
.get("/", () => ({
|
.get("/", () => ({
|
||||||
name: "DeckyVault API",
|
name: "DeckyVault API",
|
||||||
version: "2026.0.1",
|
version: "2026.0.1",
|
||||||
|
|||||||
@@ -0,0 +1,16 @@
|
|||||||
|
export { healthRoutes } from "./health"
|
||||||
|
export { userRoutes } from "./user"
|
||||||
|
export { gamesRoutes, gameVersionsRoutes } from "./games"
|
||||||
|
export { hardwareRoutes } from "./hardware"
|
||||||
|
export { performanceRoutes, performanceVerifyRoutes } from "./performance"
|
||||||
|
export {
|
||||||
|
settingCategoriesRoutes,
|
||||||
|
settingDefinitionsRoutes,
|
||||||
|
settingsFullRoutes,
|
||||||
|
} from "./settings"
|
||||||
|
export {
|
||||||
|
presetsRoutes,
|
||||||
|
presetUpvoteRoutes,
|
||||||
|
presetSettingsRoutes,
|
||||||
|
} from "./presets"
|
||||||
|
export { commentsRoutes } from "./comments"
|
||||||
Reference in New Issue
Block a user