User => Player
This commit is contained in:
@ -1,19 +1,19 @@
|
||||
import { Injectable } from '@nestjs/common'
|
||||
import { PrismaClient, } from '@prisma/client'
|
||||
|
||||
async function updateUserMoney(prisma: PrismaClient): Promise<void> {
|
||||
// On calcule le solde par utilisateur⋅rice pour mettre à jour l'objet User
|
||||
const moneyPerUser = await prisma.moneyUpdate.groupBy({
|
||||
by: 'userId',
|
||||
async function updatePlayerMoney(prisma: PrismaClient): Promise<void> {
|
||||
// On calcule le solde par joueur⋅se pour mettre à jour l'objet Player
|
||||
const moneyPerPlayer = await prisma.moneyUpdate.groupBy({
|
||||
by: 'playerId',
|
||||
_sum: {
|
||||
amount: true,
|
||||
}
|
||||
})
|
||||
for (const { userId, _sum } of moneyPerUser) {
|
||||
for (const { playerId, _sum } of moneyPerPlayer) {
|
||||
const { amount } = _sum
|
||||
await prisma.user.update({
|
||||
await prisma.player.update({
|
||||
where: {
|
||||
id: userId,
|
||||
id: playerId,
|
||||
},
|
||||
data: {
|
||||
money: amount
|
||||
@ -21,7 +21,7 @@ async function updateUserMoney(prisma: PrismaClient): Promise<void> {
|
||||
})
|
||||
}
|
||||
// On réinitialise le solde s'il n'y a plus aucun MoneyUpdate
|
||||
await prisma.user.updateMany({
|
||||
await prisma.player.updateMany({
|
||||
where: {
|
||||
moneyUpdates: { none: {} }
|
||||
},
|
||||
@ -39,7 +39,7 @@ function extendPrismaClient() {
|
||||
$allOperations({ model, operation, args, query }) {
|
||||
const result = query(args)
|
||||
if (!operation.startsWith("find") && !['aggregate', 'count', 'groupBy'].includes(operation))
|
||||
result.then(() => updateUserMoney(prisma))
|
||||
result.then(() => updatePlayerMoney(prisma))
|
||||
return result
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user