diff options
| author | Pitu <[email protected]> | 2021-03-25 02:03:57 +0900 |
|---|---|---|
| committer | Pitu <[email protected]> | 2021-03-25 02:03:57 +0900 |
| commit | 3f223a9dbfd3f79c1a8f01c6a95d14035cddeefe (patch) | |
| tree | 103dcee83a84c1b7a3b33f7339d7deb8b2ed56bb /src/api/database | |
| parent | chore: move database migration script (diff) | |
| download | host.fuwn.me-3f223a9dbfd3f79c1a8f01c6a95d14035cddeefe.tar.xz host.fuwn.me-3f223a9dbfd3f79c1a8f01c6a95d14035cddeefe.zip | |
feat: implement initial values and saving to db logic
Diffstat (limited to 'src/api/database')
| -rw-r--r-- | src/api/database/migrations/20210112011802_addSettingsTable.js | 24 | ||||
| -rw-r--r-- | src/api/database/seeds/initial.js | 13 |
2 files changed, 35 insertions, 2 deletions
diff --git a/src/api/database/migrations/20210112011802_addSettingsTable.js b/src/api/database/migrations/20210112011802_addSettingsTable.js index 2708352..3acd845 100644 --- a/src/api/database/migrations/20210112011802_addSettingsTable.js +++ b/src/api/database/migrations/20210112011802_addSettingsTable.js @@ -1,7 +1,27 @@ exports.up = async knex => { await knex.schema.createTable('settings', table => { - table.string('key').unique(); - table.json('value').notNullable(); + table.string('routePrefix'); + table.integer('rateLimitWindow'); + table.integer('rateLimitMax'); + table.string('secret'); + table.string('serviceName'); + table.string('domain'); + table.integer('chunkSize'); + table.integer('maxSize'); + table.boolean('generateZips'); + table.integer('generatedFilenameLength'); + table.integer('generatedAlbumLength'); + table.integer('maxLinksPerAlbum'); + table.string('uploadFolder'); + table.json('blockedExtensions'); + table.boolean('publicMode'); + table.boolean('userAccounts'); + table.string('adminAccount'); + table.string('adminPassword'); + table.string('metaThemeColor'); + table.string('metaDescription'); + table.string('metaKeywords'); + table.string('metaTwitterHandle'); }); }; diff --git a/src/api/database/seeds/initial.js b/src/api/database/seeds/initial.js index edc1949..bb60b2c 100644 --- a/src/api/database/seeds/initial.js +++ b/src/api/database/seeds/initial.js @@ -1,9 +1,22 @@ /* eslint-disable no-console */ const bcrypt = require('bcrypt'); const moment = require('moment'); +const Util = require('../../utils/Util'); exports.seed = async db => { const now = moment.utc().toDate(); + + // Save environment variables to the database + try { + const settings = await db.table('settings').first(); + if (!settings) { + await Util.writeConfigToDb(Util.getEnvironmentDefaults(), false); + } + } catch (error) { + console.error(error); + } + + // Create admin user if it doesnt exist const user = await db.table('users').where({ username: process.env.ADMIN_ACCOUNT }).first(); if (user) return; try { |