add other necessary files

This commit is contained in:
rubikscraft 2022-04-01 10:36:23 +02:00
parent ba2f361da3
commit 1f360b974e
No known key found for this signature in database
GPG key ID: 1463EBE9200A5CD4
6 changed files with 42 additions and 15 deletions

View file

@ -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 {}

View file

@ -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<ESysPreferenceBackend>,
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<InternalSysPrefRepresentation> {
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

View file

@ -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,

View file

@ -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',
};

View file

@ -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',
};

View file

@ -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',