You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
220 lines
4.4 KiB
JavaScript
220 lines
4.4 KiB
JavaScript
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
|
|
};
|