borders/lib/borders.js

72 lines
1.5 KiB
JavaScript

import { getServerSession } from "next-auth";
import { getSession } from "next-auth/react";
import prisma from "./prisma";
export const getUserBorders = async (req) => {
const session = await getSession({ req });
if (!session) {
return undefined;
}
const accountData = await prisma.account.findFirst({
where: {
userId: session.user.id,
},
});
const userData = await prisma.applicationUserData.findUnique({
where: {
userId: session.user.id,
},
});
if (!!userData) {
return userData;
}
const result = await prisma.applicationUserData.create({
data: {
userId: session.user.id,
discordId: accountData.providerAccountId,
},
});
return result;
};
export const setUserBorder = async (req, borderId) => {
const session = await getSession({ req });
if (!session) {
return undefined;
}
const accountData = await prisma.account.findFirst({
where: {
userId: session.user.id,
},
});
const updateData = await prisma.applicationUserData.upsert({
create: {
userId: session.user.id,
discordId: accountData.providerAccountId,
borderId,
},
data: {
borderId,
},
where: {
userId: session.user.id,
},
});
return updateData;
};
export const getByDiscordId = async (id) => {
const userData = await prisma.applicationUserData.findUnique({
where: {
discordId: id,
},
});
return userData?.borderId ? `${userData.borderId}` : undefined;
};