TheOchulus/databaseHelperFunctions.js

108 lines
2.1 KiB
JavaScript

const { Users, Games, BeatenGames } = require ('./dbObjects.js');
async function checkUserRegistration(user) {
let u = await Users.findOne({ where: { discord_id: user.id } })
.catch((err) => {
console.log(err);
});
if (u) return true;
await Users.create({ discord_id: user.id, username: user.username })
.then((data) => {
u = data;
})
.catch((err) => {
console.log(err);
});
if (u) return true;
return false;
}
async function getUserRegistration(user) {
let u = await Users.findOne({ where: { discord_id: user.id } })
.catch((err) => {
console.log(err);
});
if (u) return u;
await Users.create({ discord_id: user.id, username: user.username })
.then((data) => {
u = data;
})
.catch((err) => {
console.log(err);
});
if (u) return u;
return null;
}
async function checkGameStorage(game) {
let g = await Games.findOne({ where: { igdb_id: game.id, name: game.name } })
.catch((err) => {
console.log(err);
});
if (g) return g;
await Games.create({ igdb_id: game.id, name: game.name })
.then((data) => {
g = data;
})
.catch((err) => {
console.log(err);
});
if (g) return g;
return null;
}
async function createBeatenGameEntry(user, game) {
let bg = await BeatenGames.findOne({ where: { userId: user.id, gameId: game.id } })
.catch((err) => {
console.log(err);
});
if (bg) return false;
await BeatenGames.create({ userId: user.id, gameId: game.id })
.then((data) => {
bg = data;
})
.catch((err) => {
console.log(err);
});
if (bg) return true;
return false;
}
async function getBeatenGameCount(user) {
const u = await Users.findOne({ where: { id: user.id } })
.catch((err) => {
console.log(err);
});
if (!u) return -1;
const count = await u.countBeatenGames();
return count;
}
module.exports = {
checkUserRegistration,
getUserRegistration,
checkGameStorage,
createBeatenGameEntry,
getBeatenGameCount,
};