const mysql = require('mysql'); const con = mysql.createConnection({ host: "localhost", user: "realmsdivided", password: "realmsdivided", database: "realms_divided" }); function connect(){ con.connect(function(err) { if (err) { console.log(err); } else { console.log('DB Connected'); } }); } function disconnect(){ con.end(); } // My DB stuffs function dbGetDecks(){ const dPromise = new Promise((resolve, reject) => { let cards = []; let sql = `SELECT deckId ,playerId ,deckName FROM deck LIMIT 10 `; // TODO: Remove limit when happy/this accepts params con.query(sql, function (err, result, fields) { if (err) { throw err; reject(new Error(err)); } resolve(result); }); }); return dPromise; } function dbGetDeckList(){ const dPromise = new Promise((resolve, reject) => { let cards = []; let sql = `SELECT deckId ,playerId ,cardId ,cardCount FROM deck_cards `; con.query(sql, function (err, result, fields) { if (err) { throw err; reject(new Error(err)); } resolve(result); }); }); return dPromise; } function dbGetCards(){ // Start with basic stuff in card table const dPromise = new Promise((resolve, reject) => { let sql = `SELECT id ,cardName ,cardCost ,cardType ,cardAttack ,cardRarity FROM card `; con.query(sql, function (err, result, fields) { if (err) { throw err; reject(new Error(err)); } resolve(result); }); }); return dPromise; } function dbGetCardClasses(){ // Get the classes assoc. on each card const dPromise = new Promise((resolve, reject) => { let sql = `SELECT cardId ,classId FROM card_class `; con.query(sql, function (err, result, fields) { if (err) { throw err; reject(new Error(err)); } resolve(result); }); }); return dPromise; } function dbGetCardColourRequirement(){ // Get the classes assoc. on each card const dPromise = new Promise((resolve, reject) => { let sql = `SELECT cardId ,colourId ,cost FROM card_colour_requirement `; con.query(sql, function (err, result, fields) { if (err) { throw err; reject(new Error(err)); } resolve(result); }); }); return dPromise; } function dbGetCardManaColour(){ // Get the classes assoc. on each card const cPromise = new Promise((resolve, reject) => { let sql = `SELECT cardId ,colourId FROM card_mana_colour `; con.query(sql, function (err, result, fields) { if (err) { throw err; reject(new Error(err)); } resolve(result); }); }); return cPromise; } // Effect stuff function dbGetEffect(){ const ePromise = new Promise((resolve, reject) => { let sql = `SELECT cardId ,effectId ,description FROM card_effect INNER JOIN effect ON effect.id = card_effect.effectId `; con.query(sql, function (err, result, fields) { if (err) { throw err; reject(new Error(err)); } resolve(result); }); }); return ePromise; } function dbGetEffectStep(){ const ePromise = new Promise((resolve, reject) => { let sql = `SELECT effectId, effectStep, stepOrder, basicEffectId, amount, colourId, typeId, classId, passiveId, itemFromStep FROM effect_step LEFT JOIN -- May not be a target? effect_step_target ON effect_step_target.effectStep = effect_step.id `; con.query(sql, function (err, result, fields) { if (err) { throw err; reject(new Error(err)); } resolve(result); }); }); return ePromise; } // Effect Trigger stuff function dbGetEffectTrigger(){ const ePromise = new Promise((resolve, reject) => { let sql = `SELECT cardId, effectId, triggerTypeId, amount, colourId, typeId, classId, passiveId FROM effect_trigger INNER JOIN card_effect ON card_effect.effectId = effect_trigger.cardEffectId INNER JOIN trigger_type ON trigger_type.id = effect_trigger.triggerTypeId LEFT JOIN -- May not be a target effect_trigger_target ON effect_trigger_target.effectTriggerId = effect_trigger.triggerTypeId `; con.query(sql, function (err, result, fields) { if (err) { throw err; reject(new Error(err)); } resolve(result); }); }); return ePromise; } module.exports = { connect, disconnect // Testing, and trailing , dbGetDecks , dbGetDeckList , dbGetCards , dbGetCardClasses , dbGetCardColourRequirement , dbGetCardManaColour , dbGetEffect , dbGetEffectStep , dbGetEffectTrigger };