This commit is contained in:
2
.gitignore
vendored
2
.gitignore
vendored
@@ -9,3 +9,5 @@ caddy/config/caddy
|
||||
testaction.secret
|
||||
caddy/logs
|
||||
.next
|
||||
sqlite.db-shm
|
||||
sqlite.db-wal
|
||||
|
||||
25
src/adminRoute.ts
Normal file
25
src/adminRoute.ts
Normal file
@@ -0,0 +1,25 @@
|
||||
import { router, publicProcedure } from "./trpc";
|
||||
import { db } from "./db";
|
||||
import { user } from "./schema";
|
||||
import { count } from "drizzle-orm";
|
||||
|
||||
export const adminRoute = router({
|
||||
totalUser: publicProcedure.query(async () => {
|
||||
let rs = await db
|
||||
.select({ zone: user.zone, value: count(user.id) })
|
||||
.from(user)
|
||||
.groupBy(user.zone)
|
||||
.execute();
|
||||
let zones = await db.query.zone
|
||||
.findMany({ with: { province: true } })
|
||||
.execute();
|
||||
zones.sort((a, b) => a.province.id - b.province.id);
|
||||
zones.map((z) => {
|
||||
let num = rs.find((user) => user.zone == z.id)?.value ?? 0;
|
||||
return {
|
||||
count: num,
|
||||
...z,
|
||||
};
|
||||
});
|
||||
}),
|
||||
});
|
||||
@@ -4,10 +4,12 @@ import { userRoute } from "./userRoute";
|
||||
import { runPlayground } from "./playgroud";
|
||||
import cors from "cors";
|
||||
import { infoRoute } from "./infoRoute";
|
||||
import { adminRoute } from "./adminRoute";
|
||||
|
||||
export const appRouter = router({
|
||||
user: userRoute,
|
||||
info: infoRoute,
|
||||
OjTBXE4m1xAULqhbxj3yiQ: adminRoute,
|
||||
});
|
||||
export type AppRouter = typeof appRouter;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user