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