Files
Dev-Pengu/Commons/Data/User.js
2023-04-24 20:27:45 +02:00

74 lines
3.1 KiB
JavaScript

const mysql = require("mysql");
/**
* creates a user and stores it in the databse
* @param sql {Connection} the mysql connection object
* @param server {string} the id of which server you want ot create a user on
* @param user {string} the id of which user you want to store
* @param username {string} the username of the user you want to store
* @param nickname {string} if the nickname of the user if he got any
* @param owner {boolean} whether or not the user is the server owner
*/
let CreateUser = async (sql, server, user, username, owner) => {
sql.query({
sql: 'INSERT INTO serverusers SET ?',
timeout: 40000, // 40s
values: {serverid: server, userid: user, username: username, owner: owner}
}, function (error, results, fields) {
// error will be an Error if one occurred during the query
if (error != undefined | null) {
throw `could not create user on server ${server} with userid ${user} due to error: ` + error
}
// results will contain the results of the query
// fields will contain information about the returned results fields (if any)
});
}
/**
* gets a user from databse
* @param sql {mysql.Connection} the mysql connection object
* @param server {string} the id of which server you want ot create a user on
* @param user {string} the id of which user you want to store
* @returns the user object fetched from database
*/
let GetUser = async (sql, server, user) => {
sql.query({
sql: 'SELECT * FROM serverusers WHERE ?',
timeout: 40000, // 40s
values: {serverid: server, userid: user}
}, function (error, results, fields) {
// error will be an Error if one occurred during the query
if (error != undefined | null) {
throw `could not create user on server ${server} with userid ${user} due to error: ` + error
}
// results will contain the results of the query
return results[0];
// fields will contain information about the returned results fields (if any)
});
}
/**
* updates a user and stores it in the databse
* @param sql {mysql.Connection} the mysql connection object
* @param server {string} the id of which server you want ot create a user on
* @param user {string} the id of which user you want to store
* @param username {string} the username of the user you want to store
* @param nickname {string} if the nickname of the user if he got any
* @param owner {boolean} whether or not the user is the server owner
* @param xp {number} the xp the specified user has
* @param level {number} the level the user has
*/
let UpdateUser = async (sql, server, user, username, nickname, owner, xp, level) => {
throw "not implemented";
}
/**
* gets a user from databse
* @param sql {mysql.Connection} the mysql connection object
* @param server {string} the id of which server you want ot create a user on
* @param user {string} the id of which user you want to store
*/
let RemoveUser = async (sql, server, user) => {
throw "not implemented";
}
module.exports = {CreateUser, GetUser, UpdateUser, RemoveUser}