init commit

This commit is contained in:
crylia
2024-08-13 21:37:25 +02:00
parent 421ca07001
commit 6795ca13d3
12 changed files with 718 additions and 0 deletions

103
src/database/birthdaydb.js Normal file
View File

@@ -0,0 +1,103 @@
const { client } = require('./database')
const CreateBirthday = async (user, birthday) => {
try {
const alreadyReportedResult = await client.query(`
SELECT discorduser FROM birthday
WHERE discorduser = $1;`,
[user]
)
if (alreadyReportedResult.rows.length === 1) {
return alreadyReportedResult.rows[0]
}
const userResult = await client.query(`
SELECT * FROM discorduser
WHERE name = $1;`,
[user]
)
if (userResult.rows.length === 0) {
await client.query(`
INSERT INTO discorduser (name)
VALUES ($1);`,
[user]
)
}
await client.query(`
INSERT INTO birthday (date, discorduser)
VALUES ($1, $2);`,
[new Date(birthday.split('.').reverse().join('-')).toISOString().slice(0, 10), user]
)
return true
} catch (error) {
console.error('Error creating birthday entry:', error)
return false
}
}
const ReadBirthday = async (user) => {
try {
if (user) {
const res = await client.query(`
SELECT * FROM birthday
WHERE discorduser = $1;`,
[user]
)
return res.rows
} else {
const res = await client.query(`
SELECT * FROM birthday`,
)
return res.rows
}
} catch (error) {
console.error('Error reading birthday table:', error)
return []
}
}
const UpdateBirthday = async (user, birthday) => {
try {
if (!birthday) return false
await client.query(`
UPDATE birthday
SET birthday = $2
WHERE discorduser = $1;`,
[user, birthday]
)
return true
} catch (error) {
console.error('Error updating birthday table:', error)
return false
}
}
const DeleteBirthday = async (user) => {
try {
if (!user) return false
await client.query(`
DELETE FROM birthday
WHERE discorduser = $1;`,
[user]
)
return true
} catch (error) {
console.error('Error deleting birthday table:', error)
return false
}
}
module.exports = {
CreateBirthday,
ReadBirthday,
UpdateBirthday,
DeleteBirthday,
}

101
src/database/blacklistdb.js Normal file
View File

@@ -0,0 +1,101 @@
const { client } = require('./database')
const CreateBlacklist = async (reportedUser, reason, reportedByUser) => {
try {
const alreadyReportedResult = await client.query(`
SELECT name FROM blacklist
WHERE name = $1`,
[reportedUser]
)
if (alreadyReportedResult.rows.length === 1) {
return alreadyReportedResult.rows[0]
}
const userResult = await client.query(`
SELECT * FROM discorduser
WHERE name = $1;`,
[reportedByUser]
)
if (userResult.rows.length === 0) {
await client.query(`
INSERT INTO discorduser (name)
VALUES ($1);`,
[reportedByUser]
)
}
await client.query(`
INSERT INTO blacklist (name, reason, reportedby)
VALUES ($1, $2, $3);`,
[reportedUser, reason, reportedByUser]
)
return true
} catch (error) {
console.error('Error creating blacklist entry:', error)
return false
}
}
const ReadBlacklist = async (user) => {
try {
if (user) {
const res = await client.query(`
SELECT * FROM blacklist
WHERE name=$1`,
[user]
)
return res.rows[0] || false
} else {
const res = await client.query(`
SELECT * FROM blacklist`
)
return res.rows
}
} catch (error) {
console.error('Error reading blacklist table:', error)
return []
}
}
const UpdateBlacklist = async (reportedUser, reason) => {
try {
if (!reportedUser) return false
await client.query(`
UPDATE blacklist
SET reason = $2
WHERE name = $1;`,
[reportedUser, reason]
)
return true
} catch (error) {
console.error('Error updating blacklist table:', error)
return false
}
}
const DeleteBlacklist = async (user) => {
try {
if (!user) return false
await client.query(`
DELETE FROM blacklist
WHERE name = $1;`,
[user]
)
return true
} catch (error) {
console.error('Error deleting blacklist table:', error)
return false
}
}
module.exports = {
CreateBlacklist,
ReadBlacklist,
UpdateBlacklist,
DeleteBlacklist,
}

25
src/database/database.js Normal file
View File

@@ -0,0 +1,25 @@
const { Client } = require('pg')
require('dotenv').config()
const DB_USER = process.env.DB_USER
const DB_HOST = process.env.DB_HOST
const DB_NAME = process.env.DB_NAME
const DB_PASS = process.env.DB_PASS
const client = new Client({
connectionString: `postgresql://${DB_USER}:${DB_PASS}@${DB_HOST}/${DB_NAME}`
})
const connectDatabase = async () => {
try {
await client.connect()
console.log('Database connected')
} catch (error) {
console.error('Database connection error:', err)
}
}
module.exports = {
client,
connectDatabase,
}