108 lines
		
	
	
		
			2.1 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			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,
 | |
| }; |