@opprs/db-prisma 2.0.0 → 2.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.cjs +34 -0
- package/dist/index.d.cts +12 -2
- package/dist/index.d.ts +12 -2
- package/dist/index.js +33 -0
- package/package.json +1 -1
package/dist/index.cjs
CHANGED
|
@@ -66,6 +66,7 @@ __export(index_exports, {
|
|
|
66
66
|
getTournamentsByDateRange: () => getTournamentsByDateRange,
|
|
67
67
|
getUserByEmailWithPlayer: () => getUserByEmailWithPlayer,
|
|
68
68
|
getUserWithPlayer: () => getUserWithPlayer,
|
|
69
|
+
linkPlayerToUser: () => linkPlayerToUser,
|
|
69
70
|
prisma: () => prisma,
|
|
70
71
|
recalculateTimeDecay: () => recalculateTimeDecay,
|
|
71
72
|
searchPlayers: () => searchPlayers,
|
|
@@ -664,6 +665,38 @@ async function findUsers(params) {
|
|
|
664
665
|
});
|
|
665
666
|
return users;
|
|
666
667
|
}
|
|
668
|
+
async function linkPlayerToUser(userId, playerId) {
|
|
669
|
+
return prisma.$transaction(async (tx) => {
|
|
670
|
+
if (playerId) {
|
|
671
|
+
const player = await tx.player.findUnique({ where: { id: playerId } });
|
|
672
|
+
if (!player) {
|
|
673
|
+
throw new Error(`Player with id '${playerId}' not found`);
|
|
674
|
+
}
|
|
675
|
+
await tx.user.updateMany({
|
|
676
|
+
where: { playerId },
|
|
677
|
+
data: { playerId: null }
|
|
678
|
+
});
|
|
679
|
+
}
|
|
680
|
+
const user = await tx.user.update({
|
|
681
|
+
where: { id: userId },
|
|
682
|
+
data: { playerId },
|
|
683
|
+
include: {
|
|
684
|
+
player: {
|
|
685
|
+
select: {
|
|
686
|
+
id: true,
|
|
687
|
+
name: true,
|
|
688
|
+
rating: true,
|
|
689
|
+
ratingDeviation: true,
|
|
690
|
+
ranking: true,
|
|
691
|
+
isRated: true,
|
|
692
|
+
eventCount: true
|
|
693
|
+
}
|
|
694
|
+
}
|
|
695
|
+
}
|
|
696
|
+
});
|
|
697
|
+
return user;
|
|
698
|
+
});
|
|
699
|
+
}
|
|
667
700
|
// Annotate the CommonJS export names for ESM import in node:
|
|
668
701
|
0 && (module.exports = {
|
|
669
702
|
connect,
|
|
@@ -712,6 +745,7 @@ async function findUsers(params) {
|
|
|
712
745
|
getTournamentsByDateRange,
|
|
713
746
|
getUserByEmailWithPlayer,
|
|
714
747
|
getUserWithPlayer,
|
|
748
|
+
linkPlayerToUser,
|
|
715
749
|
prisma,
|
|
716
750
|
recalculateTimeDecay,
|
|
717
751
|
searchPlayers,
|
package/dist/index.d.cts
CHANGED
|
@@ -556,7 +556,7 @@ interface CreateUserInput {
|
|
|
556
556
|
interface UpdateUserInput {
|
|
557
557
|
email?: string;
|
|
558
558
|
passwordHash?: string;
|
|
559
|
-
playerId?: string;
|
|
559
|
+
playerId?: string | null;
|
|
560
560
|
role?: 'USER' | 'ADMIN';
|
|
561
561
|
refreshTokenHash?: string | null;
|
|
562
562
|
}
|
|
@@ -630,6 +630,16 @@ declare function findUsers(params: {
|
|
|
630
630
|
where?: Prisma.UserWhereInput;
|
|
631
631
|
orderBy?: Prisma.UserOrderByWithRelationInput;
|
|
632
632
|
}): Promise<UserWithPlayer[]>;
|
|
633
|
+
/**
|
|
634
|
+
* Links a player to a user, automatically unlinking from any existing user.
|
|
635
|
+
* Uses a transaction to ensure atomicity.
|
|
636
|
+
*
|
|
637
|
+
* @param userId - The user to link the player to
|
|
638
|
+
* @param playerId - The player to link (null to unlink)
|
|
639
|
+
* @returns The updated user with player data
|
|
640
|
+
* @throws Error if player not found
|
|
641
|
+
*/
|
|
642
|
+
declare function linkPlayerToUser(userId: string, playerId: string | null): Promise<UserWithPlayer>;
|
|
633
643
|
|
|
634
644
|
/**
|
|
635
645
|
* Re-export Prisma generated types
|
|
@@ -690,4 +700,4 @@ interface ConnectionStatus {
|
|
|
690
700
|
error?: string;
|
|
691
701
|
}
|
|
692
702
|
|
|
693
|
-
export { type ConnectionStatus, type CreatePlayerInput, type CreateResultInput, type CreateTournamentInput, type CreateUserInput, type FindPlayersOptions, type FindResultsOptions, type FindTournamentsOptions, type PlayerStatistics, type PlayerWithResults, type TournamentResultWithTournament, type TournamentStatistics, type UpdatePlayerInput, type UpdateResultInput, type UpdateTournamentInput, type UpdateUserInput, type UserWithPlayer, connect, countPlayers, countResults, countTournaments, countUsers, createManyResults, createPlayer, createResult, createTournament, createUser, createUserWithPlayer, deletePlayer, deleteResult, deleteResultsByTournament, deleteTournament, deleteUser, disconnect, findPlayerByExternalId, findPlayerById, findPlayerByUserEmail, findPlayers, findResultById, findResultByPlayerAndTournament, findResults, findTournamentByExternalId, findTournamentById, findTournaments, findUserByEmail, findUserById, findUsers, getMajorTournaments, getPlayerResults, getPlayerStats, getPlayerTopFinishes, getPlayerWithResults, getRatedPlayers, getRecentTournaments, getTopPlayersByRanking, getTopPlayersByRating, getTournamentResults, getTournamentStats, getTournamentWithResults, getTournamentsByBoosterType, getTournamentsByDateRange, getUserByEmailWithPlayer, getUserWithPlayer, prisma, recalculateTimeDecay, searchPlayers, searchTournaments, testConnection, updatePlayer, updatePlayerRating, updateResult, updateResultPoints, updateTournament, updateUser, updateUserRefreshToken };
|
|
703
|
+
export { type ConnectionStatus, type CreatePlayerInput, type CreateResultInput, type CreateTournamentInput, type CreateUserInput, type FindPlayersOptions, type FindResultsOptions, type FindTournamentsOptions, type PlayerStatistics, type PlayerWithResults, type TournamentResultWithTournament, type TournamentStatistics, type UpdatePlayerInput, type UpdateResultInput, type UpdateTournamentInput, type UpdateUserInput, type UserWithPlayer, connect, countPlayers, countResults, countTournaments, countUsers, createManyResults, createPlayer, createResult, createTournament, createUser, createUserWithPlayer, deletePlayer, deleteResult, deleteResultsByTournament, deleteTournament, deleteUser, disconnect, findPlayerByExternalId, findPlayerById, findPlayerByUserEmail, findPlayers, findResultById, findResultByPlayerAndTournament, findResults, findTournamentByExternalId, findTournamentById, findTournaments, findUserByEmail, findUserById, findUsers, getMajorTournaments, getPlayerResults, getPlayerStats, getPlayerTopFinishes, getPlayerWithResults, getRatedPlayers, getRecentTournaments, getTopPlayersByRanking, getTopPlayersByRating, getTournamentResults, getTournamentStats, getTournamentWithResults, getTournamentsByBoosterType, getTournamentsByDateRange, getUserByEmailWithPlayer, getUserWithPlayer, linkPlayerToUser, prisma, recalculateTimeDecay, searchPlayers, searchTournaments, testConnection, updatePlayer, updatePlayerRating, updateResult, updateResultPoints, updateTournament, updateUser, updateUserRefreshToken };
|
package/dist/index.d.ts
CHANGED
|
@@ -556,7 +556,7 @@ interface CreateUserInput {
|
|
|
556
556
|
interface UpdateUserInput {
|
|
557
557
|
email?: string;
|
|
558
558
|
passwordHash?: string;
|
|
559
|
-
playerId?: string;
|
|
559
|
+
playerId?: string | null;
|
|
560
560
|
role?: 'USER' | 'ADMIN';
|
|
561
561
|
refreshTokenHash?: string | null;
|
|
562
562
|
}
|
|
@@ -630,6 +630,16 @@ declare function findUsers(params: {
|
|
|
630
630
|
where?: Prisma.UserWhereInput;
|
|
631
631
|
orderBy?: Prisma.UserOrderByWithRelationInput;
|
|
632
632
|
}): Promise<UserWithPlayer[]>;
|
|
633
|
+
/**
|
|
634
|
+
* Links a player to a user, automatically unlinking from any existing user.
|
|
635
|
+
* Uses a transaction to ensure atomicity.
|
|
636
|
+
*
|
|
637
|
+
* @param userId - The user to link the player to
|
|
638
|
+
* @param playerId - The player to link (null to unlink)
|
|
639
|
+
* @returns The updated user with player data
|
|
640
|
+
* @throws Error if player not found
|
|
641
|
+
*/
|
|
642
|
+
declare function linkPlayerToUser(userId: string, playerId: string | null): Promise<UserWithPlayer>;
|
|
633
643
|
|
|
634
644
|
/**
|
|
635
645
|
* Re-export Prisma generated types
|
|
@@ -690,4 +700,4 @@ interface ConnectionStatus {
|
|
|
690
700
|
error?: string;
|
|
691
701
|
}
|
|
692
702
|
|
|
693
|
-
export { type ConnectionStatus, type CreatePlayerInput, type CreateResultInput, type CreateTournamentInput, type CreateUserInput, type FindPlayersOptions, type FindResultsOptions, type FindTournamentsOptions, type PlayerStatistics, type PlayerWithResults, type TournamentResultWithTournament, type TournamentStatistics, type UpdatePlayerInput, type UpdateResultInput, type UpdateTournamentInput, type UpdateUserInput, type UserWithPlayer, connect, countPlayers, countResults, countTournaments, countUsers, createManyResults, createPlayer, createResult, createTournament, createUser, createUserWithPlayer, deletePlayer, deleteResult, deleteResultsByTournament, deleteTournament, deleteUser, disconnect, findPlayerByExternalId, findPlayerById, findPlayerByUserEmail, findPlayers, findResultById, findResultByPlayerAndTournament, findResults, findTournamentByExternalId, findTournamentById, findTournaments, findUserByEmail, findUserById, findUsers, getMajorTournaments, getPlayerResults, getPlayerStats, getPlayerTopFinishes, getPlayerWithResults, getRatedPlayers, getRecentTournaments, getTopPlayersByRanking, getTopPlayersByRating, getTournamentResults, getTournamentStats, getTournamentWithResults, getTournamentsByBoosterType, getTournamentsByDateRange, getUserByEmailWithPlayer, getUserWithPlayer, prisma, recalculateTimeDecay, searchPlayers, searchTournaments, testConnection, updatePlayer, updatePlayerRating, updateResult, updateResultPoints, updateTournament, updateUser, updateUserRefreshToken };
|
|
703
|
+
export { type ConnectionStatus, type CreatePlayerInput, type CreateResultInput, type CreateTournamentInput, type CreateUserInput, type FindPlayersOptions, type FindResultsOptions, type FindTournamentsOptions, type PlayerStatistics, type PlayerWithResults, type TournamentResultWithTournament, type TournamentStatistics, type UpdatePlayerInput, type UpdateResultInput, type UpdateTournamentInput, type UpdateUserInput, type UserWithPlayer, connect, countPlayers, countResults, countTournaments, countUsers, createManyResults, createPlayer, createResult, createTournament, createUser, createUserWithPlayer, deletePlayer, deleteResult, deleteResultsByTournament, deleteTournament, deleteUser, disconnect, findPlayerByExternalId, findPlayerById, findPlayerByUserEmail, findPlayers, findResultById, findResultByPlayerAndTournament, findResults, findTournamentByExternalId, findTournamentById, findTournaments, findUserByEmail, findUserById, findUsers, getMajorTournaments, getPlayerResults, getPlayerStats, getPlayerTopFinishes, getPlayerWithResults, getRatedPlayers, getRecentTournaments, getTopPlayersByRanking, getTopPlayersByRating, getTournamentResults, getTournamentStats, getTournamentWithResults, getTournamentsByBoosterType, getTournamentsByDateRange, getUserByEmailWithPlayer, getUserWithPlayer, linkPlayerToUser, prisma, recalculateTimeDecay, searchPlayers, searchTournaments, testConnection, updatePlayer, updatePlayerRating, updateResult, updateResultPoints, updateTournament, updateUser, updateUserRefreshToken };
|
package/dist/index.js
CHANGED
|
@@ -581,6 +581,38 @@ async function findUsers(params) {
|
|
|
581
581
|
});
|
|
582
582
|
return users;
|
|
583
583
|
}
|
|
584
|
+
async function linkPlayerToUser(userId, playerId) {
|
|
585
|
+
return prisma.$transaction(async (tx) => {
|
|
586
|
+
if (playerId) {
|
|
587
|
+
const player = await tx.player.findUnique({ where: { id: playerId } });
|
|
588
|
+
if (!player) {
|
|
589
|
+
throw new Error(`Player with id '${playerId}' not found`);
|
|
590
|
+
}
|
|
591
|
+
await tx.user.updateMany({
|
|
592
|
+
where: { playerId },
|
|
593
|
+
data: { playerId: null }
|
|
594
|
+
});
|
|
595
|
+
}
|
|
596
|
+
const user = await tx.user.update({
|
|
597
|
+
where: { id: userId },
|
|
598
|
+
data: { playerId },
|
|
599
|
+
include: {
|
|
600
|
+
player: {
|
|
601
|
+
select: {
|
|
602
|
+
id: true,
|
|
603
|
+
name: true,
|
|
604
|
+
rating: true,
|
|
605
|
+
ratingDeviation: true,
|
|
606
|
+
ranking: true,
|
|
607
|
+
isRated: true,
|
|
608
|
+
eventCount: true
|
|
609
|
+
}
|
|
610
|
+
}
|
|
611
|
+
}
|
|
612
|
+
});
|
|
613
|
+
return user;
|
|
614
|
+
});
|
|
615
|
+
}
|
|
584
616
|
export {
|
|
585
617
|
connect,
|
|
586
618
|
countPlayers,
|
|
@@ -628,6 +660,7 @@ export {
|
|
|
628
660
|
getTournamentsByDateRange,
|
|
629
661
|
getUserByEmailWithPlayer,
|
|
630
662
|
getUserWithPlayer,
|
|
663
|
+
linkPlayerToUser,
|
|
631
664
|
prisma,
|
|
632
665
|
recalculateTimeDecay,
|
|
633
666
|
searchPlayers,
|