aboutsummaryrefslogtreecommitdiff
path: root/database/db.js
diff options
context:
space:
mode:
Diffstat (limited to 'database/db.js')
-rw-r--r--database/db.js53
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;