simpler DB structure (json decks), modDeck not done
This commit is contained in:
parent
4f3d74c2e5
commit
b3abb27446
1 changed files with 20 additions and 16 deletions
|
@ -39,26 +39,13 @@ FFTCGDB = (filename, truncate) ->
|
||||||
CREATE TABLE decks (
|
CREATE TABLE decks (
|
||||||
deck integer PRIMARY KEY,
|
deck integer PRIMARY KEY,
|
||||||
user integer NOT NULL,
|
user integer NOT NULL,
|
||||||
|
json text,
|
||||||
FOREIGN KEY (user) REFERENCES users (user)
|
FOREIGN KEY (user) REFERENCES users (user)
|
||||||
ON DELETE CASCADE
|
ON DELETE CASCADE
|
||||||
);
|
);
|
||||||
''', (err) ->
|
''', (err) ->
|
||||||
FFTCGLOG.error err.message if err
|
FFTCGLOG.error err.message if err
|
||||||
|
|
||||||
that.db.run 'DROP TABLE IF EXISTS decks_cards;', (err) ->
|
|
||||||
FFTCGLOG.error err.message if err
|
|
||||||
that.db.run '''
|
|
||||||
CREATE TABLE decks_cards (
|
|
||||||
deck integer NOT NULL,
|
|
||||||
card text NOT NULL,
|
|
||||||
quant integer NOT NULL,
|
|
||||||
UNIQUE(deck, card),
|
|
||||||
FOREIGN KEY (deck) REFERENCES decks (deck)
|
|
||||||
ON DELETE CASCADE
|
|
||||||
);
|
|
||||||
''', (err) ->
|
|
||||||
FFTCGLOG.error err.message if err
|
|
||||||
|
|
||||||
FFTCGLOG.log 'recreated DB'
|
FFTCGLOG.log 'recreated DB'
|
||||||
|
|
||||||
return
|
return
|
||||||
|
@ -151,8 +138,8 @@ FFTCGDB::addDeck = (user, deckCards) ->
|
||||||
|
|
||||||
new Promise (resolve, reject) ->
|
new Promise (resolve, reject) ->
|
||||||
# try creating row in decks table
|
# try creating row in decks table
|
||||||
stmt = that.db.prepare 'INSERT INTO decks (user) VALUES (?)'
|
stmt = that.db.prepare 'INSERT INTO decks (user, json) VALUES (?, ?)'
|
||||||
stmt.run [user], (err) ->
|
stmt.run [user, JSON.stringify deckCards], (err) ->
|
||||||
if err
|
if err
|
||||||
FFTCGLOG.log "addDeck: DB fail '#{err.code}' for id '#{user}'"
|
FFTCGLOG.log "addDeck: DB fail '#{err.code}' for id '#{user}'"
|
||||||
stmt.finalize()
|
stmt.finalize()
|
||||||
|
@ -198,6 +185,23 @@ FFTCGDB::modDeck = (deckID, deckCards) ->
|
||||||
stmt.finalize()
|
stmt.finalize()
|
||||||
resolve deckID
|
resolve deckID
|
||||||
|
|
||||||
|
FFTCGDB::getDecks = (user) ->
|
||||||
|
that = @
|
||||||
|
|
||||||
|
new Promise (resolve, reject) ->
|
||||||
|
# try deleting correct row in decks table
|
||||||
|
decks = {}
|
||||||
|
stmt = that.db.prepare 'SELECT decks.deck, decks.json FROM decks INNER JOIN users ON decks.user = users.user WHERE users.user = ?'
|
||||||
|
stmt.all [user], (err, rows) ->
|
||||||
|
stmt.finalize()
|
||||||
|
if err
|
||||||
|
FFTCGLOG.log "getDeck: DB fail '#{err.code}' for deck '#{deckID}'"
|
||||||
|
reject 'db'
|
||||||
|
else
|
||||||
|
FFTCGLOG.log "getDeck: OK '#{deckID}'"
|
||||||
|
for row in rows
|
||||||
|
decks[row.deck] = JSON.parse row.json
|
||||||
|
resolve decks
|
||||||
|
|
||||||
FFTCGDB::delDeck = (deckID) ->
|
FFTCGDB::delDeck = (deckID) ->
|
||||||
that = @
|
that = @
|
||||||
|
|
Reference in a new issue