Compare commits
2 commits
6dcb5a4963
...
b60ac2105a
| Author | SHA1 | Date | |
|---|---|---|---|
| b60ac2105a | |||
| 9d1e790a0d |
5 changed files with 73 additions and 16 deletions
|
|
@ -43,18 +43,22 @@ class FFTCGDB
|
||||||
''', (err) =>
|
''', (err) =>
|
||||||
logger.error err.message if err
|
logger.error err.message if err
|
||||||
|
|
||||||
@db.run 'DROP TABLE IF EXISTS decks;', (err) =>
|
@db.run 'DROP TABLE IF EXISTS decks;', (err) =>
|
||||||
logger.error err.message if err
|
logger.error err.message if err
|
||||||
@db.run '''
|
@db.run '''
|
||||||
CREATE TABLE decks (
|
CREATE TABLE decks (
|
||||||
deck integer PRIMARY KEY,
|
deck integer PRIMARY KEY,
|
||||||
user integer NOT NULL,
|
user integer NOT NULL,
|
||||||
json text,
|
json text,
|
||||||
FOREIGN KEY (user) REFERENCES users (user)
|
FOREIGN KEY (user) REFERENCES users (user)
|
||||||
ON DELETE CASCADE
|
ON DELETE CASCADE
|
||||||
);
|
);
|
||||||
''', (err) =>
|
''', (err) =>
|
||||||
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 decks VALUES(1,1,'{"name":"frosch"}');'''
|
||||||
|
@db.run '''INSERT INTO decks VALUES(2,1,'{"name":"frosch2"}');'''
|
||||||
|
|
||||||
logger.info 'OK clear'
|
logger.info 'OK clear'
|
||||||
|
|
||||||
|
|
@ -199,10 +203,10 @@ class FFTCGDB
|
||||||
stmt.all [user], (err, rows) ->
|
stmt.all [user], (err, rows) ->
|
||||||
stmt.finalize()
|
stmt.finalize()
|
||||||
if err
|
if err
|
||||||
logger.warn "getDeck: FAIL db '#{err.code}' for '#{deckID}'"
|
logger.warn "getDeck: FAIL db '#{err.code}' for '#{user}'"
|
||||||
reject messages.db
|
reject messages.db
|
||||||
else
|
else
|
||||||
logger.debug "getDeck: OK '#{deckID}'"
|
logger.debug "getDeck: OK '#{user}'"
|
||||||
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) ->
|
||||||
|
|
|
||||||
34
backend/routes/decks/list.coffee
Normal file
34
backend/routes/decks/list.coffee
Normal file
|
|
@ -0,0 +1,34 @@
|
||||||
|
logger = (require 'logging').default '/decks/list'
|
||||||
|
|
||||||
|
# session storage (volatile data)
|
||||||
|
session = (require '../../session')
|
||||||
|
# fftcg.db (persistent data)
|
||||||
|
fftcgdb = (require '../../db')
|
||||||
|
|
||||||
|
module.exports =
|
||||||
|
url: '/decks/list'
|
||||||
|
method: 'POST'
|
||||||
|
# schema: (require './info.schema')
|
||||||
|
|
||||||
|
handler: (request, reply) ->
|
||||||
|
session.check request.body.session ? ""
|
||||||
|
.then (userid) ->
|
||||||
|
# active session found, get associated user
|
||||||
|
fftcgdb.getDecks (userid)
|
||||||
|
.then (decks) ->
|
||||||
|
logger.debug "OK '#{userid}' got decks"
|
||||||
|
reply.send
|
||||||
|
success: true
|
||||||
|
deck: decks
|
||||||
|
|
||||||
|
.catch (err) ->
|
||||||
|
# couldnt get user details
|
||||||
|
logger.warn "FAIL '#{err}' for user id '#{userid}'"
|
||||||
|
reply.send
|
||||||
|
success: false
|
||||||
|
|
||||||
|
.catch ->
|
||||||
|
# no session found
|
||||||
|
logger.info "FAIL '#{request.body.session}' session not found"
|
||||||
|
reply.send
|
||||||
|
success: false
|
||||||
|
|
@ -20,6 +20,8 @@ fastify.route (require "./routes/#{route}") for route in [
|
||||||
'user/logout'
|
'user/logout'
|
||||||
# register user
|
# register user
|
||||||
'user/register'
|
'user/register'
|
||||||
|
# list decks
|
||||||
|
'decks/list'
|
||||||
]
|
]
|
||||||
|
|
||||||
# request logging
|
# request logging
|
||||||
|
|
|
||||||
|
|
@ -56,7 +56,7 @@ class FFTCGSESSION
|
||||||
|
|
||||||
else
|
else
|
||||||
@db.get digest, (err, res) ->
|
@db.get digest, (err, res) ->
|
||||||
logger.info "OK '#{digest}' resumed"
|
logger.debug "OK '#{digest}' resumed"
|
||||||
resolve (JSON.parse res)
|
resolve (JSON.parse res)
|
||||||
|
|
||||||
module.exports = new FFTCGSESSION
|
module.exports = new FFTCGSESSION
|
||||||
|
|
|
||||||
|
|
@ -3,6 +3,13 @@
|
||||||
<Header />
|
<Header />
|
||||||
|
|
||||||
<p>user logged in: {{ user.login }}</p>
|
<p>user logged in: {{ user.login }}</p>
|
||||||
|
|
||||||
|
<ul>
|
||||||
|
<li v-for="deck in decks" :key="deck.id">
|
||||||
|
{{ deck.id }}: {{ deck.content.name }}
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
|
||||||
<v-btn @click.native="logout">Logout</v-btn>
|
<v-btn @click.native="logout">Logout</v-btn>
|
||||||
</v-container>
|
</v-container>
|
||||||
</template>
|
</template>
|
||||||
|
|
@ -21,7 +28,8 @@ export default {
|
||||||
},
|
},
|
||||||
|
|
||||||
data: () => ({
|
data: () => ({
|
||||||
user: ''
|
user: '',
|
||||||
|
decks: ''
|
||||||
}),
|
}),
|
||||||
|
|
||||||
methods: {
|
methods: {
|
||||||
|
|
@ -55,6 +63,15 @@ export default {
|
||||||
this.goHome()
|
this.goHome()
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
axios
|
||||||
|
.post('/decks/list', {
|
||||||
|
session: Cookies.get('session')
|
||||||
|
})
|
||||||
|
.then(response => {
|
||||||
|
if (response.data.success) {
|
||||||
|
this.decks = response.data.deck
|
||||||
|
}
|
||||||
|
})
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
|
|
|
||||||
Reference in a new issue