diff --git a/.env.example b/.env.example index c1fe1dc..55d9653 100644 --- a/.env.example +++ b/.env.example @@ -1,4 +1,4 @@ -DB_TYPE = (mysql|sqlite|postgres) # default ist mysql +DB_TYPE = (mysql|postgres) # default ist mysql ## BSP für mysql DB_PORT = 3306 @@ -14,9 +14,6 @@ DB_NAME = database_name DB_USERNAME = database_username DB_PASSWORD = database_password -## BSP für sqlite -DB_HOST = filename.db - ## Dev only SERVER_PORT = portnumber diff --git a/src/command/management/setting/settingCommandHandler.ts b/src/command/management/setting/settingCommandHandler.ts index 1d50776..9890f35 100644 --- a/src/command/management/setting/settingCommandHandler.ts +++ b/src/command/management/setting/settingCommandHandler.ts @@ -1,7 +1,6 @@ import { dataSource } from "../../../data-source"; import { setting } from "../../../entity/management/setting"; import DatabaseActionException from "../../../exceptions/databaseActionException"; -import { StringHelper } from "../../../helpers/stringHelper"; import { CreateOrUpdateSettingCommand, DeleteSettingCommand } from "./settingCommand"; export default abstract class SettingCommandHandler { @@ -11,8 +10,6 @@ export default abstract class SettingCommandHandler { * @returns {Promise} */ static async create(createSetting: CreateOrUpdateSettingCommand): Promise { - const token = StringHelper.random(32); - return await dataSource .createQueryBuilder() .insert() @@ -25,7 +22,7 @@ export default abstract class SettingCommandHandler { .orUpdate(["value"], ["topic", "key"]) .execute() .then((result) => { - return token; + return createSetting.value; }) .catch((err) => { throw new DatabaseActionException("CREATE OR UPDATE", "setting", err); diff --git a/src/data-source.ts b/src/data-source.ts index d35eaa6..6d40b6c 100644 --- a/src/data-source.ts +++ b/src/data-source.ts @@ -54,6 +54,7 @@ import { NewsletterColumnType1744351418751 } from "./migrations/1744351418751-ne import { QueryUpdatedAt1744795756230 } from "./migrations/1744795756230-QueryUpdatedAt"; import { SettingsFromEnv1745059495808 } from "./migrations/1745059495808-settingsFromEnv"; import { MemberCreatedAt1746006549262 } from "./migrations/1746006549262-memberCreatedAt"; +import { UserLoginRoutine1746252454922 } from "./migrations/1746252454922-UserLoginRoutine"; const dataSource = new DataSource({ type: DB_TYPE as any, @@ -116,6 +117,7 @@ const dataSource = new DataSource({ NewsletterColumnType1744351418751, QueryUpdatedAt1744795756230, SettingsFromEnv1745059495808, + SettingsFromEnv_SET1745059495808, MemberCreatedAt1746006549262, ], migrationsRun: true, diff --git a/src/env.defaults.ts b/src/env.defaults.ts index f7bc48d..7bdcb4b 100644 --- a/src/env.defaults.ts +++ b/src/env.defaults.ts @@ -39,15 +39,11 @@ export const TRUST_PROXY = ((): Array | string | boolean | number | null })(); export function configCheck() { - if (DB_TYPE != "mysql" && DB_TYPE != "sqlite" && DB_TYPE != "postgres") - throw new Error("set valid value to DB_TYPE (mysql|sqlite|postgres)"); - if ((DB_HOST == "" || typeof DB_HOST != "string") && DB_TYPE != "sqlite") - throw new Error("set valid value to DB_HOST"); + if (DB_TYPE != "mysql" && DB_TYPE != "postgres") throw new Error("set valid value to DB_TYPE (mysql|postgres)"); + if (DB_HOST == "" || typeof DB_HOST != "string") throw new Error("set valid value to DB_HOST"); if (DB_NAME == "" || typeof DB_NAME != "string") throw new Error("set valid value to DB_NAME"); - if ((DB_USERNAME == "" || typeof DB_USERNAME != "string") && DB_TYPE != "sqlite") - throw new Error("set valid value to DB_USERNAME"); - if ((DB_PASSWORD == "" || typeof DB_PASSWORD != "string") && DB_TYPE != "sqlite") - throw new Error("set valid value to DB_PASSWORD"); + if (DB_USERNAME == "" || typeof DB_USERNAME != "string") throw new Error("set valid value to DB_USERNAME"); + if (DB_PASSWORD == "" || typeof DB_PASSWORD != "string") throw new Error("set valid value to DB_PASSWORD"); if (isNaN(SERVER_PORT)) throw new Error("set valid numeric value to SERVER_PORT"); diff --git a/src/migrations/1745059495808-settingsFromEnv.ts b/src/migrations/1745059495808-settingsFromEnv.ts index 6028f1d..1faee5e 100644 --- a/src/migrations/1745059495808-settingsFromEnv.ts +++ b/src/migrations/1745059495808-settingsFromEnv.ts @@ -8,23 +8,6 @@ export class SettingsFromEnv1745059495808 implements MigrationInterface { public async up(queryRunner: QueryRunner): Promise { await queryRunner.createTable(setting_table, true, true, true); - - //transfer settings of env to database - await SettingHelper.setSetting("club.name", process.env.CLUB_NAME); - await SettingHelper.setSetting("club.website", process.env.CLUB_WEBSITE); - await SettingHelper.setSetting("session.jwt_expiration", process.env.JWT_EXPIRATION as ms.StringValue); - await SettingHelper.setSetting("session.refresh_expiration", process.env.REFRESH_EXPIRATION as ms.StringValue); - await SettingHelper.setSetting( - "session.pwa_refresh_expiration", - process.env.PWA_REFRESH_EXPIRATION as ms.StringValue - ); - await SettingHelper.setSetting("mail.username", process.env.MAIL_USERNAME); - await SettingHelper.setSetting("mail.password", process.env.MAIL_PASSWORD); - await SettingHelper.setSetting("mail.host", process.env.MAIL_HOST); - await SettingHelper.setSetting("mail.port", Number(process.env.MAIL_PORT)); - await SettingHelper.setSetting("mail.secure", Boolean(process.env.MAIL_SECURE)); - await SettingHelper.setSetting("backup.interval", Number(process.env.BACKUP_INTERVAL)); - await SettingHelper.setSetting("backup.copies", Number(process.env.BACKUP_COPIES)); } public async down(queryRunner: QueryRunner): Promise { diff --git a/src/migrations/1745059495808-settingsFromEnv_set.ts b/src/migrations/1745059495808-settingsFromEnv_set.ts new file mode 100644 index 0000000..c99c7b0 --- /dev/null +++ b/src/migrations/1745059495808-settingsFromEnv_set.ts @@ -0,0 +1,29 @@ +import { MigrationInterface, QueryRunner } from "typeorm"; +import { setting_table } from "./baseSchemaTables/admin"; +import SettingHelper from "../helpers/settingsHelper"; +import ms from "ms"; + +export class SettingsFromEnv_SET1745059495808 implements MigrationInterface { + name = "SettingsFromEnv_SET1745059495808"; + + public async up(queryRunner: QueryRunner): Promise { + // transfer settings of env to database + await SettingHelper.setSetting("club.name", process.env.CLUB_NAME); + await SettingHelper.setSetting("club.website", process.env.CLUB_WEBSITE); + await SettingHelper.setSetting("session.jwt_expiration", process.env.JWT_EXPIRATION as ms.StringValue); + await SettingHelper.setSetting("session.refresh_expiration", process.env.REFRESH_EXPIRATION as ms.StringValue); + await SettingHelper.setSetting( + "session.pwa_refresh_expiration", + process.env.PWA_REFRESH_EXPIRATION as ms.StringValue + ); + await SettingHelper.setSetting("mail.username", process.env.MAIL_USERNAME); + await SettingHelper.setSetting("mail.password", process.env.MAIL_PASSWORD); + await SettingHelper.setSetting("mail.host", process.env.MAIL_HOST); + await SettingHelper.setSetting("mail.port", Number(process.env.MAIL_PORT ?? "578")); + await SettingHelper.setSetting("mail.secure", Boolean(process.env.MAIL_SECURE ?? "false")); + await SettingHelper.setSetting("backup.interval", Number(process.env.BACKUP_INTERVAL ?? "1")); + await SettingHelper.setSetting("backup.copies", Number(process.env.BACKUP_COPIES ?? "7")); + } + + public async down(queryRunner: QueryRunner): Promise {} +}