perf upgrade
This commit is contained in:
@@ -3,26 +3,25 @@ import { createServerFn } from "@tanstack/react-start";
|
||||
import { isRedirect } from "@tanstack/react-router";
|
||||
import { Player, playerInputSchema, playerUpdateSchema, PlayerStats } from "@/features/players/types";
|
||||
import { Match } from "@/features/matches/types";
|
||||
import { pbAdmin } from "@/lib/pocketbase/client";
|
||||
import { z } from "zod";
|
||||
import { logger } from ".";
|
||||
import { Logger } from "@/lib/logger";
|
||||
import { getRequest } from "@tanstack/react-start/server";
|
||||
import { toServerResult } from "@/lib/tanstack-query/utils/to-server-result";
|
||||
import { serverFnLoggingMiddleware } from "@/utils/activities";
|
||||
|
||||
const logger = new Logger('Players');
|
||||
|
||||
export const fetchMe = createServerFn()
|
||||
.handler(async () =>
|
||||
.handler(async () =>
|
||||
toServerResult(async () => {
|
||||
const request = getRequest();
|
||||
|
||||
|
||||
try {
|
||||
const context = await getSessionContext(request);
|
||||
|
||||
await pbAdmin.authPromise;
|
||||
const result = await pbAdmin.getPlayerByAuthId(context.userAuthId);
|
||||
|
||||
return {
|
||||
user: result || undefined,
|
||||
roles: context.roles,
|
||||
user: context.player || undefined,
|
||||
roles: context.roles,
|
||||
metadata: context.metadata,
|
||||
phone: context.phone
|
||||
};
|
||||
@@ -35,20 +34,25 @@ export const fetchMe = createServerFn()
|
||||
);
|
||||
|
||||
export const getPlayer = createServerFn()
|
||||
.inputValidator(z.string())
|
||||
.validator(z.string())
|
||||
.middleware([superTokensFunctionMiddleware])
|
||||
.handler(async ({ data }) =>
|
||||
toServerResult<Player>(async () => await pbAdmin.getPlayer(data))
|
||||
.handler(async ({ data }) =>
|
||||
toServerResult<Player>(async () => {
|
||||
const { pbAdmin } = await import("@/lib/pocketbase/client");
|
||||
return await pbAdmin.getPlayer(data);
|
||||
})
|
||||
);
|
||||
|
||||
export const updatePlayer = createServerFn()
|
||||
.inputValidator(playerUpdateSchema)
|
||||
.validator(playerUpdateSchema)
|
||||
.middleware([superTokensFunctionMiddleware, serverFnLoggingMiddleware])
|
||||
.handler(async ({ context, data }) =>
|
||||
.handler(async ({ context, data }) =>
|
||||
toServerResult(async () => {
|
||||
const userAuthId = context.userAuthId;
|
||||
if (!userAuthId) return;
|
||||
|
||||
const { pbAdmin } = await import("@/lib/pocketbase/client");
|
||||
|
||||
const existing = await pbAdmin.getPlayerByAuthId(userAuthId);
|
||||
if (!existing) return;
|
||||
|
||||
@@ -69,13 +73,15 @@ export const updatePlayer = createServerFn()
|
||||
);
|
||||
|
||||
export const createPlayer = createServerFn()
|
||||
.inputValidator(playerInputSchema)
|
||||
.validator(playerInputSchema)
|
||||
.middleware([superTokensFunctionMiddleware])
|
||||
.handler(async ({ context, data }) =>
|
||||
.handler(async ({ context, data }) =>
|
||||
toServerResult(async () => {
|
||||
const userAuthId = context.userAuthId;
|
||||
if (!userAuthId) return;
|
||||
|
||||
const { pbAdmin } = await import("@/lib/pocketbase/client");
|
||||
|
||||
const existing = await pbAdmin.getPlayerByAuthId(userAuthId);
|
||||
if (existing) return;
|
||||
|
||||
@@ -94,21 +100,23 @@ export const createPlayer = createServerFn()
|
||||
);
|
||||
|
||||
export const associatePlayer = createServerFn()
|
||||
.inputValidator(z.string())
|
||||
.validator(z.string())
|
||||
.middleware([superTokensFunctionMiddleware, serverFnLoggingMiddleware])
|
||||
.handler(async ({ context, data }) =>
|
||||
.handler(async ({ context, data }) =>
|
||||
toServerResult(async () => {
|
||||
const userAuthId = context.userAuthId;
|
||||
if (!userAuthId) return;
|
||||
|
||||
const { pbAdmin } = await import("@/lib/pocketbase/client");
|
||||
|
||||
const p = await pbAdmin.getPlayer(data);
|
||||
|
||||
await pbAdmin.updatePlayer(data, {
|
||||
auth_id: userAuthId
|
||||
});
|
||||
|
||||
await setUserMetadata({ data: {
|
||||
player_id: data,
|
||||
await setUserMetadata({ data: {
|
||||
player_id: data,
|
||||
first_name: p?.first_name,
|
||||
last_name: p?.last_name
|
||||
}});
|
||||
@@ -121,49 +129,70 @@ export const associatePlayer = createServerFn()
|
||||
|
||||
export const listPlayers = createServerFn()
|
||||
.middleware([superTokensFunctionMiddleware])
|
||||
.handler(async () =>
|
||||
toServerResult(pbAdmin.listPlayers)
|
||||
.handler(async () =>
|
||||
toServerResult(async () => {
|
||||
const { pbAdmin } = await import("@/lib/pocketbase/client");
|
||||
return await pbAdmin.listPlayers();
|
||||
})
|
||||
);
|
||||
|
||||
export const getUnassociatedPlayers = createServerFn()
|
||||
.middleware([superTokensFunctionMiddleware])
|
||||
.handler(async () =>
|
||||
toServerResult(pbAdmin.getUnassociatedPlayers)
|
||||
.handler(async () =>
|
||||
toServerResult(async () => {
|
||||
const { pbAdmin } = await import("@/lib/pocketbase/client");
|
||||
return await pbAdmin.getUnassociatedPlayers();
|
||||
})
|
||||
);
|
||||
|
||||
export const getPlayerStats = createServerFn()
|
||||
.inputValidator(z.object({
|
||||
.validator(z.object({
|
||||
playerId: z.string(),
|
||||
viewType: z.enum(['all', 'mainline', 'regional']).optional()
|
||||
}))
|
||||
.middleware([superTokensFunctionMiddleware])
|
||||
.handler(async ({ data }) =>
|
||||
toServerResult<PlayerStats>(async () => await pbAdmin.getPlayerStats(data.playerId, data.viewType))
|
||||
toServerResult<PlayerStats>(async () => {
|
||||
const { pbAdmin } = await import("@/lib/pocketbase/client");
|
||||
return await pbAdmin.getPlayerStats(data.playerId, data.viewType);
|
||||
})
|
||||
);
|
||||
|
||||
export const getAllPlayerStats = createServerFn()
|
||||
.inputValidator(z.enum(['all', 'mainline', 'regional']).optional())
|
||||
.validator(z.enum(['all', 'mainline', 'regional']).optional())
|
||||
.middleware([superTokensFunctionMiddleware])
|
||||
.handler(async ({ data }) =>
|
||||
toServerResult<PlayerStats[]>(async () => await pbAdmin.getAllPlayerStats(data))
|
||||
toServerResult<PlayerStats[]>(async () => {
|
||||
const { pbAdmin } = await import("@/lib/pocketbase/client");
|
||||
return await pbAdmin.getAllPlayerStats(data);
|
||||
})
|
||||
);
|
||||
|
||||
export const getPlayerMatches = createServerFn()
|
||||
.inputValidator(z.string())
|
||||
.validator(z.string())
|
||||
.middleware([superTokensFunctionMiddleware])
|
||||
.handler(async ({ data }) =>
|
||||
toServerResult<Match[]>(async () => await pbAdmin.getPlayerMatches(data))
|
||||
toServerResult<Match[]>(async () => {
|
||||
const { pbAdmin } = await import("@/lib/pocketbase/client");
|
||||
return await pbAdmin.getPlayerMatches(data);
|
||||
})
|
||||
);
|
||||
|
||||
export const getUnenrolledPlayers = createServerFn()
|
||||
.inputValidator(z.string())
|
||||
.validator(z.string())
|
||||
.middleware([superTokensFunctionMiddleware])
|
||||
.handler(async ({ data: tournamentId }) =>
|
||||
toServerResult(async () => await pbAdmin.getUnenrolledPlayers(tournamentId))
|
||||
toServerResult(async () => {
|
||||
const { pbAdmin } = await import("@/lib/pocketbase/client");
|
||||
return await pbAdmin.getUnenrolledPlayers(tournamentId);
|
||||
})
|
||||
);
|
||||
|
||||
export const getPlayersActivity = createServerFn()
|
||||
.middleware([superTokensFunctionMiddleware])
|
||||
.handler(async () =>
|
||||
toServerResult<Player[]>(async () => await pbAdmin.getPlayersActivity())
|
||||
toServerResult<Player[]>(async () => {
|
||||
const { pbAdmin } = await import("@/lib/pocketbase/client");
|
||||
return await pbAdmin.getPlayersActivity();
|
||||
})
|
||||
);
|
||||
|
||||
Reference in New Issue
Block a user