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) => {
|
||||
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) => {
|
||||
|
@ -49,9 +49,9 @@ module.exports.initMongoDBInstance = async (client,config,callback) => {
|
|||
search: async (table, data , callback) => {
|
||||
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) => {
|
||||
|
|
|
@ -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
|
||||
// Possible Options ["mongod" , "mysqld"]
|
||||
database_adapter: "mongod",
|
||||
database_adapter: "mysqld",
|
||||
// If using MongoDB
|
||||
database_uri: process.env['database_uri'] || "",
|
||||
database_name: "xantic",
|
||||
// If using MySQL
|
||||
database_host: "localhost",
|
||||
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 path = require('node:path');
|
||||
const { MongoClient } = require("mongodb");
|
||||
const mysql = require('mysql2');
|
||||
const { Client, Events, GatewayIntentBits, Collection } = require('discord.js');
|
||||
|
||||
const client = new Client({
|
||||
|
@ -24,7 +25,17 @@ async function main() {
|
|||
|
||||
require("../database/mongod").initMongoDBInstance(mongo_client, config, (back) => initMessageManager(back));
|
||||
} 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