· 8 years ago · Jan 20, 2018, 08:08 PM
1const log = require('../../src/utils/log.js')
2const store = require('./store')
3const db = store.db
4const dbget = store.dbget
5const dbrun = store.dbrun
6
7const createRecordTableSql = 'CREATE TABLE IF NOT EXISTS record (' +
8 'uid INTEGER,' +
9 'hid INTEGER,' +
10 'createdTime INTEGER, ' +
11 'updatedTime INTEGER,' +
12 'value INTEGER,' +
13 'PRIMARY KEY(uid, hid, createdTime)' +
14 ')'
15
16async function initRecordTable() {
17 db.run(createRecordTableSql)
18 let row = await dbget('SELECT COUNT(*) AS cnt FROM record')
19 log.info('current record count:', row.cnt)
20}
21db.serialize(initRecordTable)
22
23// interface
24async function loadUserRecords (uid) {
25 try {
26 let rows = await dball('SELECT * FROM record WHERE uid=?', [uid])
27 let result = {}
28 for (let row of rows) {
29 result[row.hid] = result[row.hid] || {}
30 result[row.hid][row.createdTime] = row.createdTime
31 }
32 return result
33 } catch (err) {
34 log.error(err)
35 }
36}
37
38async function dumpUserRecords(name) {
39 try {
40 let row = await dbget('SELECT * FROM user WHERE name=?', [name])
41 log.info(JSON.stringify(row))
42 return row
43 } catch (err) {
44 log.error(err)
45 }
46}
47
48async function addUser(user) {
49 try {
50 log.info(JSON.stringify(user))
51 await dbrun('INSERT INTO user (id, name, hash) VALUES (?, ?, ?)', [user.id, user.username, user.hash])
52 } catch (err) {
53 log.error(err)
54 }
55}
56
57module.exports = {
58 getUserById: getUserById,
59 getUserByName: getUserByName,
60 addUser: addUser
61}