Compare commits
2 commits
b60ac2105a
...
3f6b91f5ca
| Author | SHA1 | Date | |
|---|---|---|---|
| 3f6b91f5ca | |||
| c2f077c198 |
6 changed files with 50 additions and 25 deletions
|
|
@ -57,8 +57,7 @@ class FFTCGDB
|
||||||
logger.error err.message if err
|
logger.error err.message if err
|
||||||
|
|
||||||
@db.run '''INSERT INTO users VALUES(1,'jmm','$2b$13$jgDdHHDWqq1RV6PXxf7aOO6AbxqY6tbxIADyIO0FeXt2BlKQCCMzS',NULL);'''
|
@db.run '''INSERT INTO users VALUES(1,'jmm','$2b$13$jgDdHHDWqq1RV6PXxf7aOO6AbxqY6tbxIADyIO0FeXt2BlKQCCMzS',NULL);'''
|
||||||
@db.run '''INSERT INTO decks VALUES(1,1,'{"name":"frosch"}');'''
|
@db.run '''INSERT INTO decks VALUES(1,1,'{"name":"Antipode Bomb Version 6.0","note":"As Seen In Tournament: The North American Water Cup","cards":[{"count":1,"serial":"1-192"},{"count":2,"serial":"7-132"},{"count":2,"serial":"8-037"},{"count":2,"serial":"8-139"},{"count":1,"serial":"5-036"},{"count":3,"serial":"4-048"},{"count":1,"serial":"2-026"},{"count":3,"serial":"8-043"},{"count":3,"serial":"4-021"},{"count":3,"serial":"3-033"},{"count":1,"serial":"8-014"},{"count":2,"serial":"8-006"},{"count":1,"serial":"8-042"},{"count":1,"serial":"6-027"},{"count":3,"serial":"5-019"},{"count":2,"serial":"2-019"},{"count":2,"serial":"5-032"},{"count":3,"serial":"4-026"},{"count":3,"serial":"1-057"},{"count":1,"serial":"1-048"},{"count":2,"serial":"8-036"},{"count":3,"serial":"8-005"},{"count":3,"serial":"2-005"},{"count":1,"serial":"7-017"},{"count":1,"serial":"8-007"}]}');'''
|
||||||
@db.run '''INSERT INTO decks VALUES(2,1,'{"name":"frosch2"}');'''
|
|
||||||
|
|
||||||
logger.info 'OK clear'
|
logger.info 'OK clear'
|
||||||
|
|
||||||
|
|
@ -151,18 +150,18 @@ class FFTCGDB
|
||||||
.catch ->
|
.catch ->
|
||||||
reject messages.empty
|
reject messages.empty
|
||||||
|
|
||||||
get: (user) ->
|
getUser: (userID) ->
|
||||||
new Promise (resolve, reject) =>
|
new Promise (resolve, reject) =>
|
||||||
# get users table row
|
# get users table row
|
||||||
stmt = @db.prepare 'SELECT * FROM users WHERE user = ?'
|
stmt = @db.prepare 'SELECT * FROM users WHERE user = ?'
|
||||||
stmt.get [user], (err, row) =>
|
stmt.get [userID], (err, row) =>
|
||||||
stmt.finalize()
|
stmt.finalize()
|
||||||
if err
|
if err
|
||||||
logger.warn "get: FAIL db '#{err.code}' for '#{user}'"
|
logger.warn "get: FAIL db '#{err.code}' for '#{userID}'"
|
||||||
reject messages.db
|
reject messages.db
|
||||||
|
|
||||||
else if not row
|
else if not row
|
||||||
logger.debug "get: FAIL nonexistent '#{user}'"
|
logger.debug "get: FAIL nonexistent '#{userID}'"
|
||||||
reject messages.noexists # user doesnt exist
|
reject messages.noexists # user doesnt exist
|
||||||
|
|
||||||
else
|
else
|
||||||
|
|
@ -171,24 +170,24 @@ class FFTCGDB
|
||||||
login: row.login
|
login: row.login
|
||||||
settings: row.settings
|
settings: row.settings
|
||||||
|
|
||||||
addDeck: (user, deckCards) ->
|
addDeck: (userID, deckCards) ->
|
||||||
new Promise (resolve, reject) =>
|
new Promise (resolve, reject) =>
|
||||||
# try creating row in decks table
|
# try creating row in decks table
|
||||||
stmt = @db.prepare 'INSERT INTO decks (user, json) VALUES (?, ?)'
|
stmt = @db.prepare 'INSERT INTO decks (user, json) VALUES (?, ?)'
|
||||||
stmt.run [user, JSON.stringify deckCards], (err) ->
|
stmt.run [userID, JSON.stringify deckCards], (err) ->
|
||||||
stmt.finalize()
|
stmt.finalize()
|
||||||
if err
|
if err
|
||||||
logger.warn "addDeck: FAIL db '#{err.code}' for '#{user}'"
|
logger.warn "addDeck: FAIL db '#{err.code}' for '#{userID}'"
|
||||||
reject messages.db
|
reject messages.db
|
||||||
|
|
||||||
else
|
else
|
||||||
logger.debug "addDeck: OK '#{@lastID}'"
|
logger.debug "addDeck: OK '#{@lastID}'"
|
||||||
resolve @lastID
|
resolve @lastID
|
||||||
|
|
||||||
modDeck: (deckID, deckCards) ->
|
modDeck: (userID, deckID, deckCards) ->
|
||||||
new Promise (resolve, reject) =>
|
new Promise (resolve, reject) =>
|
||||||
stmt = @db.prepare 'UPDATE decks SET json = ? WHERE deck = ?'
|
stmt = @db.prepare 'UPDATE decks SET json = ? WHERE deck = ? AND user = ?'
|
||||||
stmt.run [deckCards, deckID], (err) ->
|
stmt.run [JSON.stringify deckCards, deckID, userID], (err) ->
|
||||||
stmt.finalize()
|
stmt.finalize()
|
||||||
if err
|
if err
|
||||||
logger.warn "modDeck: FAIL db '#{err.code}' for '#{deckID}'"
|
logger.warn "modDeck: FAIL db '#{err.code}' for '#{deckID}'"
|
||||||
|
|
@ -197,16 +196,16 @@ class FFTCGDB
|
||||||
logger.debug "modDeck: OK '#{deckID}'"
|
logger.debug "modDeck: OK '#{deckID}'"
|
||||||
resolve deckID
|
resolve deckID
|
||||||
|
|
||||||
getDecks: (user) ->
|
getDecks: (userID) ->
|
||||||
new Promise (resolve, reject) =>
|
new Promise (resolve, reject) =>
|
||||||
stmt = @db.prepare 'SELECT decks.deck, decks.json FROM decks INNER JOIN users ON decks.user = users.user WHERE users.user = ?'
|
stmt = @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.all [userID], (err, rows) ->
|
||||||
stmt.finalize()
|
stmt.finalize()
|
||||||
if err
|
if err
|
||||||
logger.warn "getDeck: FAIL db '#{err.code}' for '#{user}'"
|
logger.warn "getDecks: FAIL db '#{err.code}' for '#{userID}'"
|
||||||
reject messages.db
|
reject messages.db
|
||||||
else
|
else
|
||||||
logger.debug "getDeck: OK '#{user}'"
|
logger.debug "getDecks: OK '#{userID}'"
|
||||||
resolve (id: row.deck, content: JSON.parse row.json for row, i in rows)
|
resolve (id: row.deck, content: JSON.parse row.json for row, i in rows)
|
||||||
|
|
||||||
delDeck: (deckID) ->
|
delDeck: (deckID) ->
|
||||||
|
|
|
||||||
|
|
@ -19,7 +19,7 @@ module.exports =
|
||||||
logger.debug "OK '#{userid}' got decks"
|
logger.debug "OK '#{userid}' got decks"
|
||||||
reply.send
|
reply.send
|
||||||
success: true
|
success: true
|
||||||
deck: decks
|
decks: decks
|
||||||
|
|
||||||
.catch (err) ->
|
.catch (err) ->
|
||||||
# couldnt get user details
|
# couldnt get user details
|
||||||
|
|
|
||||||
|
|
@ -14,7 +14,7 @@ module.exports =
|
||||||
session.check request.body.session ? ""
|
session.check request.body.session ? ""
|
||||||
.then (userid) ->
|
.then (userid) ->
|
||||||
# active session found, get associated user
|
# active session found, get associated user
|
||||||
fftcgdb.get (userid)
|
fftcgdb.getUser (userid)
|
||||||
.then (user) ->
|
.then (user) ->
|
||||||
logger.debug "OK '#{user.login}' got info"
|
logger.debug "OK '#{user.login}' got info"
|
||||||
reply.send
|
reply.send
|
||||||
|
|
|
||||||
9
frontend/src/plugins/ffdecks.js
Normal file
9
frontend/src/plugins/ffdecks.js
Normal file
|
|
@ -0,0 +1,9 @@
|
||||||
|
import oldCards from './ffdecks.json'
|
||||||
|
|
||||||
|
let CardsDB = {}
|
||||||
|
|
||||||
|
for (var i = 0; i < oldCards.cards.length; i++) {
|
||||||
|
CardsDB[oldCards.cards[i].serial_number] = oldCards.cards[i]
|
||||||
|
}
|
||||||
|
|
||||||
|
export default CardsDB
|
||||||
1
frontend/src/plugins/ffdecks.json
Normal file
1
frontend/src/plugins/ffdecks.json
Normal file
File diff suppressed because one or more lines are too long
|
|
@ -4,11 +4,23 @@
|
||||||
|
|
||||||
<p>user logged in: {{ user.login }}</p>
|
<p>user logged in: {{ user.login }}</p>
|
||||||
|
|
||||||
|
<v-expansion-panel>
|
||||||
|
<v-expansion-panel-content v-for="deck in decks" :key="deck.id">
|
||||||
|
<template v-slot:header>
|
||||||
|
<div>{{ deck.content.name }}</div>
|
||||||
|
</template>
|
||||||
|
<v-card>
|
||||||
|
<v-card-text>
|
||||||
|
{{ deck.content.note }}
|
||||||
<ul>
|
<ul>
|
||||||
<li v-for="deck in decks" :key="deck.id">
|
<li v-for="card in deck.content.cards" :key="card.serial">
|
||||||
{{ deck.id }}: {{ deck.content.name }}
|
{{ card.serial }}: {{ cardsdb[card.serial].name }}
|
||||||
</li>
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
|
</v-card-text>
|
||||||
|
</v-card>
|
||||||
|
</v-expansion-panel-content>
|
||||||
|
</v-expansion-panel>
|
||||||
|
|
||||||
<v-btn @click.native="logout">Logout</v-btn>
|
<v-btn @click.native="logout">Logout</v-btn>
|
||||||
</v-container>
|
</v-container>
|
||||||
|
|
@ -17,6 +29,7 @@
|
||||||
<script>
|
<script>
|
||||||
import * as Cookies from 'js-cookie'
|
import * as Cookies from 'js-cookie'
|
||||||
import axios from '@/plugins/axios'
|
import axios from '@/plugins/axios'
|
||||||
|
import CardsDB from '@/plugins/ffdecks'
|
||||||
|
|
||||||
import Header from '@/components/Header.vue'
|
import Header from '@/components/Header.vue'
|
||||||
|
|
||||||
|
|
@ -29,7 +42,8 @@ export default {
|
||||||
|
|
||||||
data: () => ({
|
data: () => ({
|
||||||
user: '',
|
user: '',
|
||||||
decks: ''
|
decks: '',
|
||||||
|
cardsdb: null
|
||||||
}),
|
}),
|
||||||
|
|
||||||
methods: {
|
methods: {
|
||||||
|
|
@ -52,6 +66,8 @@ export default {
|
||||||
},
|
},
|
||||||
|
|
||||||
mounted() {
|
mounted() {
|
||||||
|
this.cardsdb = CardsDB
|
||||||
|
|
||||||
axios
|
axios
|
||||||
.post('/user/info', {
|
.post('/user/info', {
|
||||||
session: Cookies.get('session')
|
session: Cookies.get('session')
|
||||||
|
|
@ -69,7 +85,7 @@ export default {
|
||||||
})
|
})
|
||||||
.then(response => {
|
.then(response => {
|
||||||
if (response.data.success) {
|
if (response.data.success) {
|
||||||
this.decks = response.data.deck
|
this.decks = response.data.decks
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Reference in a new issue