half-mysqld implementation and bug fixes
This commit is contained in:
parent
a5c65ae583
commit
133f68276b
|
@ -20,9 +20,9 @@ module.exports.initMongoDBInstance = async (client,config,callback) => {
|
||||||
list: async (table , callback) => {
|
list: async (table , callback) => {
|
||||||
var collection = db.collection(table);
|
var collection = db.collection(table);
|
||||||
|
|
||||||
var data = await collection.find(data);
|
var found_data = await collection.find(data);
|
||||||
|
|
||||||
callback(data);
|
callback(found_data);
|
||||||
},
|
},
|
||||||
|
|
||||||
insert: async (table, data,callback) => {
|
insert: async (table, data,callback) => {
|
||||||
|
@ -49,9 +49,9 @@ module.exports.initMongoDBInstance = async (client,config,callback) => {
|
||||||
search: async (table, data , callback) => {
|
search: async (table, data , callback) => {
|
||||||
var collection = db.collection(table);
|
var collection = db.collection(table);
|
||||||
|
|
||||||
var data = await collection.findOne(data);
|
var found_data = await collection.findOne(data);
|
||||||
|
|
||||||
callback(data);
|
callback(found_data);
|
||||||
},
|
},
|
||||||
|
|
||||||
edit: async (table, uuid, data , callback) => {
|
edit: async (table, uuid, data , callback) => {
|
||||||
|
|
|
@ -1 +1,77 @@
|
||||||
// [WIP]
|
/**
|
||||||
|
*
|
||||||
|
* @param {import('mysql2').Connection} client
|
||||||
|
* @param {*} callback
|
||||||
|
*/
|
||||||
|
module.exports.initMYSQL2Connection = async (client,config,callback) => {
|
||||||
|
var call_data = {
|
||||||
|
createStore: async (name, callback) => {
|
||||||
|
client.query(
|
||||||
|
`CREATE TABLE ${name.replace(".","")} (id INT NOT NULL AUTO_INCREMENT , uuid VARCHAR(256) NOT NULL , data LONGTEXT NOT NULL, timestamp VARCHAR(16) NOT NULL , PRIMARY KEY (id)) ENGINE = ${config.database_engine};`,
|
||||||
|
async function(err,results,fields) {
|
||||||
|
callback(true);
|
||||||
|
}
|
||||||
|
)
|
||||||
|
},
|
||||||
|
|
||||||
|
list: async (table , callback) => {
|
||||||
|
var fetchData = [];
|
||||||
|
|
||||||
|
client.query(
|
||||||
|
`SELECT * FROM ${table.replace(".","")}`,
|
||||||
|
async function(err,results,fields) {
|
||||||
|
for(var element of results) {
|
||||||
|
var data = JSON.parse(element['data']);
|
||||||
|
await fetchData.push({
|
||||||
|
uuid: element['uuid'],
|
||||||
|
...data
|
||||||
|
});
|
||||||
|
|
||||||
|
await callback(fetchData);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
)
|
||||||
|
},
|
||||||
|
|
||||||
|
search: async (table , data , callback) => {
|
||||||
|
var fetchData = [];
|
||||||
|
|
||||||
|
client.query(
|
||||||
|
`SELECT * FROM ${table.replace(".","")}`,
|
||||||
|
async function(err,results,fields) {
|
||||||
|
for(var element of results) {
|
||||||
|
var data = JSON.parse(element['data']);
|
||||||
|
if(data)
|
||||||
|
await fetchData.push({
|
||||||
|
uuid: element['uuid'],
|
||||||
|
...data
|
||||||
|
});
|
||||||
|
|
||||||
|
await callback(fetchData);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
)
|
||||||
|
},
|
||||||
|
|
||||||
|
insert: async (table, data,callback) => {
|
||||||
|
var uuid = require('node:crypto').randomUUID();
|
||||||
|
|
||||||
|
client.query(
|
||||||
|
`INSERT INTO ${table.replace(".","")} (uuid, data, timestamp) VALUES
|
||||||
|
('${uuid}', '${JSON.stringify(data)}', '${Date.now()}')`,
|
||||||
|
async function(err,result,fields) {
|
||||||
|
callback(uuid)
|
||||||
|
}
|
||||||
|
)
|
||||||
|
},
|
||||||
|
|
||||||
|
build: async () => {
|
||||||
|
var tables = require("./collection_tables.json");
|
||||||
|
for(var table of tables){
|
||||||
|
call_data.createStore(table , (state) => {});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
callback(call_data);
|
||||||
|
}
|
|
@ -9,12 +9,13 @@ module.exports = {
|
||||||
|
|
||||||
// Database Configurations
|
// Database Configurations
|
||||||
// Possible Options ["mongod" , "mysqld"]
|
// Possible Options ["mongod" , "mysqld"]
|
||||||
database_adapter: "mongod",
|
database_adapter: "mysqld",
|
||||||
// If using MongoDB
|
// If using MongoDB
|
||||||
database_uri: process.env['database_uri'] || "",
|
database_uri: process.env['database_uri'] || "",
|
||||||
database_name: "xantic",
|
database_name: "xantic",
|
||||||
// If using MySQL
|
// If using MySQL
|
||||||
database_host: "localhost",
|
database_host: "localhost",
|
||||||
database_user: "root",
|
database_user: "root",
|
||||||
datbase_password: process.env['database_password'] || ""
|
database_password: process.env['database_password'] || "",
|
||||||
|
database_engine: "InnoDB"
|
||||||
}
|
}
|
11
src/index.js
11
src/index.js
|
@ -4,6 +4,7 @@ const config = require("./config/prod");
|
||||||
const fs = require('node:fs');
|
const fs = require('node:fs');
|
||||||
const path = require('node:path');
|
const path = require('node:path');
|
||||||
const { MongoClient } = require("mongodb");
|
const { MongoClient } = require("mongodb");
|
||||||
|
const mysql = require('mysql2');
|
||||||
const { Client, Events, GatewayIntentBits, Collection } = require('discord.js');
|
const { Client, Events, GatewayIntentBits, Collection } = require('discord.js');
|
||||||
|
|
||||||
const client = new Client({
|
const client = new Client({
|
||||||
|
@ -24,7 +25,17 @@ async function main() {
|
||||||
|
|
||||||
require("../database/mongod").initMongoDBInstance(mongo_client, config, (back) => initMessageManager(back));
|
require("../database/mongod").initMongoDBInstance(mongo_client, config, (back) => initMessageManager(back));
|
||||||
} else if (config.database_adapter == "mysqld") {
|
} else if (config.database_adapter == "mysqld") {
|
||||||
|
const mysql_connection = mysql.createConnection({
|
||||||
|
host: config.database_host,
|
||||||
|
user: config.database_user,
|
||||||
|
password: config.database_password,
|
||||||
|
database: config.database_name,
|
||||||
|
});
|
||||||
|
|
||||||
|
mysql_connection.connect();
|
||||||
|
mysql_connection.on('error', (error) => console.error);
|
||||||
|
|
||||||
|
require("../database/mysqld").initMYSQL2Connection(mysql_connection, config, (back) => initMessageManager(back));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue