lineage analytics
This commit is contained in:
File diff suppressed because it is too large
Load Diff
@@ -1,4 +1,4 @@
|
|||||||
import { createTRPCRouter, publicProcedure } from "../../utils";
|
import { createTRPCRouter, publicProcedure, adminProcedure } from "../../utils";
|
||||||
import { z } from "zod";
|
import { z } from "zod";
|
||||||
import { LineageConnectionFactory } from "~/server/utils";
|
import { LineageConnectionFactory } from "~/server/utils";
|
||||||
import { env } from "~/env/server";
|
import { env } from "~/env/server";
|
||||||
@@ -92,4 +92,42 @@ export const lineageMiscRouter = createTRPCRouter({
|
|||||||
offlineSecret: publicProcedure.query(() => {
|
offlineSecret: publicProcedure.query(() => {
|
||||||
return { secret: env.LINEAGE_OFFLINE_SERIALIZATION_SECRET };
|
return { secret: env.LINEAGE_OFFLINE_SERIALIZATION_SECRET };
|
||||||
}),
|
}),
|
||||||
|
|
||||||
|
getLineageStats: adminProcedure.query(async () => {
|
||||||
|
const conn = LineageConnectionFactory();
|
||||||
|
|
||||||
|
try {
|
||||||
|
const res = await conn.execute({
|
||||||
|
sql: `SELECT * FROM Analytics`,
|
||||||
|
args: [],
|
||||||
});
|
});
|
||||||
|
|
||||||
|
const rows = res.rows.map((row: any) => ({
|
||||||
|
playerID: row.playerID as string,
|
||||||
|
dungeonProgression: safeJsonParse(row.dungeonProgression),
|
||||||
|
playerClass: row.playerClass as string,
|
||||||
|
spellCount: row.spellCount as number,
|
||||||
|
proficiencies: safeJsonParse(row.proficiencies),
|
||||||
|
jobs: safeJsonParse(row.jobs),
|
||||||
|
resistanceTable: safeJsonParse(row.resistanceTable),
|
||||||
|
damageTable: safeJsonParse(row.damageTable),
|
||||||
|
}));
|
||||||
|
|
||||||
|
return { success: true, players: rows };
|
||||||
|
} catch (e) {
|
||||||
|
console.error("Failed to fetch lineage analytics:", e);
|
||||||
|
return { success: false, players: [] };
|
||||||
|
}
|
||||||
|
}),
|
||||||
|
});
|
||||||
|
|
||||||
|
function safeJsonParse(val: unknown): unknown {
|
||||||
|
if (typeof val === "string") {
|
||||||
|
try {
|
||||||
|
return JSON.parse(val);
|
||||||
|
} catch {
|
||||||
|
return val;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return val;
|
||||||
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user