several
This commit is contained in:
@@ -4,8 +4,10 @@ import type {
|
||||
TournamentInput,
|
||||
TournamentUpdateInput,
|
||||
} from "@/features/tournaments/types";
|
||||
import type { Team } from "@/features/teams/types";
|
||||
import PocketBase from "pocketbase";
|
||||
import { transformTournament } from "@/lib/pocketbase/util/transform-types";
|
||||
import { transformTeam } from "@/lib/pocketbase/util/transform-types";
|
||||
|
||||
export function createTournamentsService(pb: PocketBase) {
|
||||
return {
|
||||
@@ -54,6 +56,12 @@ export function createTournamentsService(pb: PocketBase) {
|
||||
{ "teams+": teamId },
|
||||
{ expand: "teams, teams.players" }
|
||||
);
|
||||
|
||||
await pb.collection("teams").update(
|
||||
teamId,
|
||||
{ "tournaments+": tournamentId }
|
||||
);
|
||||
|
||||
return transformTournament(result);
|
||||
},
|
||||
async unenrollTeam(
|
||||
@@ -65,7 +73,43 @@ export function createTournamentsService(pb: PocketBase) {
|
||||
{ "teams-": teamId },
|
||||
{ expand: "teams, teams.players" }
|
||||
);
|
||||
|
||||
await pb.collection("teams").update(
|
||||
teamId,
|
||||
{ "tournaments-": tournamentId }
|
||||
);
|
||||
|
||||
return transformTournament(result);
|
||||
},
|
||||
async getUnenrolledTeams(tournamentId: string): Promise<Team[]> {
|
||||
try {
|
||||
logger.info("PocketBase | Getting unenrolled teams for tournament", tournamentId);
|
||||
const tournament = await pb.collection("tournaments").getOne(tournamentId, {
|
||||
fields: "teams"
|
||||
});
|
||||
|
||||
const enrolledTeamIds = tournament.teams || [];
|
||||
if (enrolledTeamIds.length === 0) {
|
||||
const allTeams = await pb.collection("teams").getFullList({
|
||||
expand: "players"
|
||||
});
|
||||
return allTeams.map(transformTeam);
|
||||
}
|
||||
|
||||
const filter = enrolledTeamIds
|
||||
.map((teamId: string) => `id != "${teamId}"`)
|
||||
.join(" && ");
|
||||
|
||||
const availableTeams = await pb.collection("teams").getFullList({
|
||||
filter,
|
||||
expand: "players"
|
||||
});
|
||||
|
||||
return availableTeams.map(transformTeam);
|
||||
} catch (error) {
|
||||
logger.error("PocketBase | Error getting unenrolled teams", error);
|
||||
throw error;
|
||||
}
|
||||
},
|
||||
};
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user