diff options
Diffstat (limited to 'database/db.js')
| -rw-r--r-- | database/db.js | 53 |
1 files changed, 53 insertions, 0 deletions
diff --git a/database/db.js b/database/db.js new file mode 100644 index 0000000..8655f76 --- /dev/null +++ b/database/db.js @@ -0,0 +1,53 @@ +let init = function(db){ + + // Create the tables we need to store galleries and files + db.schema.createTableIfNotExists('albums', function (table) { + table.increments(); + table.integer('userid'); + table.string('name'); + table.string('identifier'); + table.integer('enabled'); + table.integer('timestamp'); + table.integer('editedAt'); + table.integer('zipGeneratedAt'); + }).then(() => {}); + + db.schema.createTableIfNotExists('files', function (table) { + table.increments(); + table.integer('userid'); + table.string('name'); + table.string('original'); + table.string('type'); + table.string('size'); + table.string('hash'); + table.string('ip'); + table.integer('albumid'); + table.integer('timestamp'); + }).then(() => {}); + + db.schema.createTableIfNotExists('users', function (table) { + table.increments(); + table.string('username'); + table.string('password'); + table.string('token'); + table.integer('enabled'); + table.integer('timestamp'); + }).then(() => { + db.table('users').where({username: 'root'}).then((user) => { + if(user.length > 0) return; + + require('bcrypt').hash('root', 10, function(err, hash) { + if(err) console.error('Error generating password hash for root'); + + db.table('users').insert({ + username: 'root', + password: hash, + token: require('randomstring').generate(64), + timestamp: Math.floor(Date.now() / 1000) + }).then(() => {}); + }); + }); + }); +}; + +module.exports = init; |