add other necessary files
This commit is contained in:
parent
ba2f361da3
commit
1f360b974e
|
@ -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 {}
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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]: () => {
|
||||
|
|
14
backend/src/models/dto/usrpreferences.dto.ts
Normal file
14
backend/src/models/dto/usrpreferences.dto.ts
Normal 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',
|
||||
};
|
9
frontend/src/app/i18n/usrpref.i18n.ts
Normal file
9
frontend/src/app/i18n/usrpref.i18n.ts
Normal 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',
|
||||
};
|
|
@ -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',
|
||||
|
|
Loading…
Reference in a new issue