From 740d120b4af8668450177cc32deed7850d550329 Mon Sep 17 00:00:00 2001 From: Vermium Sifell Date: Thu, 1 Jun 2023 12:21:35 +0200 Subject: [PATCH] fix: :bug: fix reputation repute function Fixed the broken reputation repute command, so now it actualyl can give reputation to people --- src/handlers/ReputationManager.ts | 35 +++++++++++-------------------- 1 file changed, 12 insertions(+), 23 deletions(-) diff --git a/src/handlers/ReputationManager.ts b/src/handlers/ReputationManager.ts index 93693c33..486eedb5 100644 --- a/src/handlers/ReputationManager.ts +++ b/src/handlers/ReputationManager.ts @@ -1,3 +1,4 @@ +import { UserReputation } from "@prisma/client"; import { User } from "discord.js"; import prisma from "./prisma"; @@ -38,42 +39,30 @@ class ReputationManager { } async repute(user: User, type: "positive" | "negative") { - const userData = await prisma.user.upsert({ - where: { id: user.id }, - update: {}, - create: { - id: user.id, - userReputation: { - create: { - positive: 0, - negative: 0, - }, - }, - }, - include: { - userReputation: true, - }, - }); - - let userReputation: any = {}; - - if (!userData.userReputation) return null; + let userReputation: UserReputation | null = null; if (type === "positive") { userReputation = await prisma.userReputation.upsert({ - where: { id: userData.userReputation.id }, + where: { id: user.id }, update: { positive: { increment: 1 } }, create: { positive: 1, negative: 0, - user: { connect: { id: user.id } }, + user: { + connectOrCreate: { + where: { + id: user.id, + }, + create: { id: user.id }, + }, + }, }, }); } if (type === "negative") { userReputation = await prisma.userReputation.upsert({ - where: { id: userData.userReputation.id }, + where: { id: user.id }, update: { negative: { increment: 1 } }, create: { positive: 0,