From 1f360b974e620736154635724a1208b3e44589a7 Mon Sep 17 00:00:00 2001 From: rubikscraft Date: Fri, 1 Apr 2022 10:36:23 +0200 Subject: [PATCH] add other necessary files --- .../syspreferencedb.module.ts | 4 ++-- .../syspreferencedb.service.ts | 6 +++--- .../syspreferencedefaults.service.ts | 21 ++++++++++++------- backend/src/models/dto/usrpreferences.dto.ts | 14 +++++++++++++ frontend/src/app/i18n/usrpref.i18n.ts | 9 ++++++++ shared/src/dto/usrpreferences.dto.ts | 3 --- 6 files changed, 42 insertions(+), 15 deletions(-) create mode 100644 backend/src/models/dto/usrpreferences.dto.ts create mode 100644 frontend/src/app/i18n/usrpref.i18n.ts diff --git a/backend/src/collections/syspreferencesdb/syspreferencedb.module.ts b/backend/src/collections/syspreferencesdb/syspreferencedb.module.ts index d60448f..71dec95 100644 --- a/backend/src/collections/syspreferencesdb/syspreferencedb.module.ts +++ b/backend/src/collections/syspreferencesdb/syspreferencedb.module.ts @@ -3,14 +3,14 @@ import { TypeOrmModule } from '@nestjs/typeorm'; import { EarlyConfigModule } from '../../config/early/earlyconfig.module'; import { ESysPreferenceBackend } from '../../models/entities/syspreference.entity'; import { SysPreferenceService } from './syspreferencedb.service'; -import { SysPreferenceDefaultsService } from './syspreferencedefaults.service'; +import { PreferenceDefaultsService } from './syspreferencedefaults.service'; @Module({ imports: [ TypeOrmModule.forFeature([ESysPreferenceBackend]), EarlyConfigModule, ], - providers: [SysPreferenceService, SysPreferenceDefaultsService], + providers: [SysPreferenceService, PreferenceDefaultsService], exports: [SysPreferenceService], }) export class SysPreferenceModule {} diff --git a/backend/src/collections/syspreferencesdb/syspreferencedb.service.ts b/backend/src/collections/syspreferencesdb/syspreferencedb.service.ts index 00e3545..b8a25d7 100644 --- a/backend/src/collections/syspreferencesdb/syspreferencedb.service.ts +++ b/backend/src/collections/syspreferencesdb/syspreferencedb.service.ts @@ -18,7 +18,7 @@ import { SysPreferenceValueTypes } from '../../models/dto/syspreferences.dto'; import { ESysPreferenceBackend } from '../../models/entities/syspreference.entity'; -import { SysPreferenceDefaultsService } from './syspreferencedefaults.service'; +import { PreferenceDefaultsService } from './syspreferencedefaults.service'; @Injectable() export class SysPreferenceService { @@ -27,7 +27,7 @@ export class SysPreferenceService { constructor( @InjectRepository(ESysPreferenceBackend) private sysPreferenceRepository: Repository, - private defaultsService: SysPreferenceDefaultsService, + private defaultsService: PreferenceDefaultsService, ) {} public async setPreference( @@ -135,7 +135,7 @@ export class SysPreferenceService { private async saveDefault( key: SysPreference, // Force enum here because we dont validate ): AsyncFailable { - return this.setPreference(key, this.defaultsService.defaults[key]()); + return this.setPreference(key, this.defaultsService.sysDefaults[key]()); } // This converts the raw string representation of the value to the correct type diff --git a/backend/src/collections/syspreferencesdb/syspreferencedefaults.service.ts b/backend/src/collections/syspreferencesdb/syspreferencedefaults.service.ts index c2ebb02..0c6cb72 100644 --- a/backend/src/collections/syspreferencesdb/syspreferencedefaults.service.ts +++ b/backend/src/collections/syspreferencesdb/syspreferencedefaults.service.ts @@ -1,8 +1,7 @@ import { Injectable, Logger } from '@nestjs/common'; import { PrefValueType } from 'picsur-shared/dist/dto/preferences.dto'; -import { - SysPreference -} from 'picsur-shared/dist/dto/syspreferences.dto'; +import { SysPreference } from 'picsur-shared/dist/dto/syspreferences.dto'; +import { UsrPreference } from 'picsur-shared/dist/dto/usrpreferences.dto'; import { generateRandomString } from 'picsur-shared/dist/util/random'; import { EarlyJwtConfigService } from '../../config/early/earlyjwt.config.service'; @@ -10,12 +9,20 @@ import { EarlyJwtConfigService } from '../../config/early/earlyjwt.config.servic // It needs to be in a service because the values depend on the environment @Injectable() -export class SysPreferenceDefaultsService { - private readonly logger = new Logger('SysPreferenceDefaultsService'); +export class PreferenceDefaultsService { + private readonly logger = new Logger('PreferenceDefaultsService'); constructor(private jwtConfigService: EarlyJwtConfigService) {} - public readonly defaults: { + public readonly usrDefaults: { + [key in UsrPreference]: () => PrefValueType; + } = { + [UsrPreference.TestString]: () => 'test_string', + [UsrPreference.TestNumber]: () => 123, + [UsrPreference.TestBoolean]: () => true, + }; + + public readonly sysDefaults: { [key in SysPreference]: () => PrefValueType; } = { [SysPreference.JwtSecret]: () => { @@ -32,7 +39,7 @@ export class SysPreferenceDefaultsService { [SysPreference.JwtExpiresIn]: () => this.jwtConfigService.getJwtExpiresIn() ?? '7d', [SysPreference.BCryptStrength]: () => 12, - + [SysPreference.TestString]: () => 'test_string', [SysPreference.TestNumber]: () => 123, [SysPreference.TestBoolean]: () => true, diff --git a/backend/src/models/dto/usrpreferences.dto.ts b/backend/src/models/dto/usrpreferences.dto.ts new file mode 100644 index 0000000..4b73f70 --- /dev/null +++ b/backend/src/models/dto/usrpreferences.dto.ts @@ -0,0 +1,14 @@ +import { PrefValueTypeStrings } from 'picsur-shared/dist/dto/preferences.dto'; +import { UsrPreference } from 'picsur-shared/dist/dto/usrpreferences.dto'; + +export type UsrPreferences = UsrPreference[]; +export const UsrPreferenceList: string[] = Object.values(UsrPreference); + +// Syspref Value types +export const UsrPreferenceValueTypes: { + [key in UsrPreference]: PrefValueTypeStrings; +} = { + [UsrPreference.TestString]: 'string', + [UsrPreference.TestNumber]: 'number', + [UsrPreference.TestBoolean]: 'boolean', +}; diff --git a/frontend/src/app/i18n/usrpref.i18n.ts b/frontend/src/app/i18n/usrpref.i18n.ts new file mode 100644 index 0000000..fb3f709 --- /dev/null +++ b/frontend/src/app/i18n/usrpref.i18n.ts @@ -0,0 +1,9 @@ +import { UsrPreference } from 'picsur-shared/dist/dto/usrpreferences.dto'; + +export const UsrPreferenceFriendlyNames: { + [key in UsrPreference]: string; +} = { + [UsrPreference.TestString]: 'Test String', + [UsrPreference.TestNumber]: 'Test Number', + [UsrPreference.TestBoolean]: 'Test Boolean', +}; diff --git a/shared/src/dto/usrpreferences.dto.ts b/shared/src/dto/usrpreferences.dto.ts index 9fa47cc..132fad7 100644 --- a/shared/src/dto/usrpreferences.dto.ts +++ b/shared/src/dto/usrpreferences.dto.ts @@ -2,9 +2,6 @@ import { PrefValueType, PrefValueTypeStrings } from './preferences.dto'; // This enum is only here to make accessing the values easier, and type checking in the backend export enum UsrPreference { - JwtSecret = 'jwt_secret', - JwtExpiresIn = 'jwt_expires_in', - BCryptStrength = 'bcrypt_strength', TestString = 'test_string', TestNumber = 'test_number', TestBoolean = 'test_boolean',