mirror of
https://github.com/CaramelFur/Picsur.git
synced 2025-11-13 23:35:39 +01:00
relocate config files
This commit is contained in:
@@ -1,9 +1,9 @@
|
||||
import { Module } from '@nestjs/common';
|
||||
import { ServeStaticModule } from '@nestjs/serve-static';
|
||||
import { TypeOrmModule } from '@nestjs/typeorm';
|
||||
import { PicsurConfigModule } from './config/config.module';
|
||||
import { ServeStaticConfigService } from './config/servestatic.config.service';
|
||||
import { TypeOrmConfigService } from './config/typeorm.config.service';
|
||||
import { EarlyConfigModule } from './config/early/earlyconfig.module';
|
||||
import { ServeStaticConfigService } from './config/early/servestatic.config.service';
|
||||
import { TypeOrmConfigService } from './config/early/typeorm.config.service';
|
||||
import { PicsurLoggerModule } from './logger/logger.module';
|
||||
import { AuthManagerModule } from './managers/auth/auth.module';
|
||||
import { DemoManagerModule } from './managers/demo/demomanager.module';
|
||||
@@ -13,11 +13,11 @@ import { PicsurRoutesModule } from './routes/routes.module';
|
||||
imports: [
|
||||
TypeOrmModule.forRootAsync({
|
||||
useExisting: TypeOrmConfigService,
|
||||
imports: [PicsurConfigModule],
|
||||
imports: [EarlyConfigModule],
|
||||
}),
|
||||
ServeStaticModule.forRootAsync({
|
||||
useExisting: ServeStaticConfigService,
|
||||
imports: [PicsurConfigModule],
|
||||
imports: [EarlyConfigModule],
|
||||
}),
|
||||
PicsurLoggerModule,
|
||||
AuthManagerModule,
|
||||
|
||||
@@ -1,14 +1,14 @@
|
||||
import { Logger, Module, OnModuleInit } from '@nestjs/common';
|
||||
import { TypeOrmModule } from '@nestjs/typeorm';
|
||||
import { HasFailed } from 'picsur-shared/dist/types';
|
||||
import { PicsurConfigModule } from '../../config/config.module';
|
||||
import { HostConfigService } from '../../config/host.config.service';
|
||||
import { EarlyConfigModule } from '../../config/early/earlyconfig.module';
|
||||
import { HostConfigService } from '../../config/early/host.config.service';
|
||||
import { ImmutableRolesList, SystemRoleDefaults, UndeletableRolesList } from '../../models/dto/roles.dto';
|
||||
import { ERoleBackend } from '../../models/entities/role.entity';
|
||||
import { RolesService } from './roledb.service';
|
||||
|
||||
@Module({
|
||||
imports: [PicsurConfigModule, TypeOrmModule.forFeature([ERoleBackend])],
|
||||
imports: [EarlyConfigModule, TypeOrmModule.forFeature([ERoleBackend])],
|
||||
providers: [RolesService],
|
||||
exports: [RolesService],
|
||||
})
|
||||
|
||||
@@ -1,15 +1,14 @@
|
||||
import { Module } from '@nestjs/common';
|
||||
import { TypeOrmModule } from '@nestjs/typeorm';
|
||||
import { PicsurConfigModule } from '../../config/config.module';
|
||||
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 { ConfigModule } from '@nestjs/config';
|
||||
|
||||
@Module({
|
||||
imports: [
|
||||
TypeOrmModule.forFeature([ESysPreferenceBackend]),
|
||||
PicsurConfigModule,
|
||||
EarlyConfigModule,
|
||||
],
|
||||
providers: [SysPreferenceService, SysPreferenceDefaultsService],
|
||||
exports: [SysPreferenceService],
|
||||
|
||||
@@ -4,7 +4,7 @@ import {
|
||||
SysPrefValueType
|
||||
} from 'picsur-shared/dist/dto/syspreferences.dto';
|
||||
import { generateRandomString } from 'picsur-shared/dist/util/random';
|
||||
import { EnvJwtConfigService } from '../../config/jwt.config.service';
|
||||
import { EarlyJwtConfigService } from '../../config/early/earlyjwt.config.service';
|
||||
|
||||
// This specific service is used to store default values for system preferences
|
||||
// It needs to be in a service because the values depend on the environment
|
||||
@@ -13,7 +13,7 @@ import { EnvJwtConfigService } from '../../config/jwt.config.service';
|
||||
export class SysPreferenceDefaultsService {
|
||||
private readonly logger = new Logger('SysPreferenceDefaultsService');
|
||||
|
||||
constructor(private jwtConfigService: EnvJwtConfigService) {}
|
||||
constructor(private jwtConfigService: EarlyJwtConfigService) {}
|
||||
|
||||
public readonly defaults: {
|
||||
[key in SysPreference]: () => SysPrefValueType;
|
||||
|
||||
@@ -2,8 +2,8 @@ import { Logger, Module, OnModuleInit } from '@nestjs/common';
|
||||
import { TypeOrmModule } from '@nestjs/typeorm';
|
||||
import { HasFailed } from 'picsur-shared/dist/types';
|
||||
import { generateRandomString } from 'picsur-shared/dist/util/random';
|
||||
import { AuthConfigService } from '../../config/auth.config.service';
|
||||
import { PicsurConfigModule } from '../../config/config.module';
|
||||
import { AuthConfigService } from '../../config/early/auth.config.service';
|
||||
import { EarlyConfigModule } from '../../config/early/earlyconfig.module';
|
||||
import { EUserBackend } from '../../models/entities/user.entity';
|
||||
import { RolesModule } from '../roledb/roledb.module';
|
||||
import { UsersService } from './userdb.service';
|
||||
@@ -11,7 +11,7 @@ import { UserRolesService } from './userrolesdb.service';
|
||||
|
||||
@Module({
|
||||
imports: [
|
||||
PicsurConfigModule,
|
||||
EarlyConfigModule,
|
||||
RolesModule,
|
||||
TypeOrmModule.forFeature([EUserBackend]),
|
||||
],
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
import { Injectable } from '@nestjs/common';
|
||||
import { ConfigService } from '@nestjs/config';
|
||||
import { EnvPrefix } from './config.static';
|
||||
import { EnvPrefix } from '../config.static';
|
||||
|
||||
@Injectable()
|
||||
export class AuthConfigService {
|
||||
@@ -1,8 +1,8 @@
|
||||
import { Module } from '@nestjs/common';
|
||||
import { ConfigModule } from '@nestjs/config';
|
||||
import { AuthConfigService } from './auth.config.service';
|
||||
import { EarlyJwtConfigService } from './earlyjwt.config.service';
|
||||
import { HostConfigService } from './host.config.service';
|
||||
import { EnvJwtConfigService } from './jwt.config.service';
|
||||
import { MultipartConfigService } from './multipart.config.service';
|
||||
import { ServeStaticConfigService } from './servestatic.config.service';
|
||||
import { TypeOrmConfigService } from './typeorm.config.service';
|
||||
@@ -15,7 +15,7 @@ import { TypeOrmConfigService } from './typeorm.config.service';
|
||||
}),
|
||||
],
|
||||
providers: [
|
||||
EnvJwtConfigService,
|
||||
EarlyJwtConfigService,
|
||||
TypeOrmConfigService,
|
||||
ServeStaticConfigService,
|
||||
HostConfigService,
|
||||
@@ -24,7 +24,7 @@ import { TypeOrmConfigService } from './typeorm.config.service';
|
||||
],
|
||||
exports: [
|
||||
ConfigModule,
|
||||
EnvJwtConfigService,
|
||||
EarlyJwtConfigService,
|
||||
TypeOrmConfigService,
|
||||
ServeStaticConfigService,
|
||||
HostConfigService,
|
||||
@@ -32,4 +32,4 @@ import { TypeOrmConfigService } from './typeorm.config.service';
|
||||
MultipartConfigService,
|
||||
],
|
||||
})
|
||||
export class PicsurConfigModule {}
|
||||
export class EarlyConfigModule {}
|
||||
@@ -1,9 +1,9 @@
|
||||
import { Injectable } from '@nestjs/common';
|
||||
import { ConfigService } from '@nestjs/config';
|
||||
import { EnvPrefix } from './config.static';
|
||||
import { EnvPrefix } from '../config.static';
|
||||
|
||||
@Injectable()
|
||||
export class EnvJwtConfigService {
|
||||
export class EarlyJwtConfigService {
|
||||
constructor(private configService: ConfigService) {}
|
||||
|
||||
public getJwtSecret(): string | undefined {
|
||||
@@ -1,6 +1,6 @@
|
||||
import { Injectable, Logger } from '@nestjs/common';
|
||||
import { ConfigService } from '@nestjs/config';
|
||||
import { EnvPrefix } from './config.static';
|
||||
import { EnvPrefix } from '../config.static';
|
||||
|
||||
@Injectable()
|
||||
export class HostConfigService {
|
||||
@@ -1,6 +1,6 @@
|
||||
import { Injectable, Logger } from '@nestjs/common';
|
||||
import { ConfigService } from '@nestjs/config';
|
||||
import { EnvPrefix } from './config.static';
|
||||
import { EnvPrefix } from '../config.static';
|
||||
|
||||
@Injectable()
|
||||
export class MultipartConfigService {
|
||||
@@ -5,7 +5,7 @@ import {
|
||||
ServeStaticModuleOptionsFactory
|
||||
} from '@nestjs/serve-static';
|
||||
import { join } from 'path';
|
||||
import { EnvPrefix, PackageRoot } from './config.static';
|
||||
import { EnvPrefix, PackageRoot } from '../config.static';
|
||||
|
||||
@Injectable()
|
||||
export class ServeStaticConfigService
|
||||
@@ -1,8 +1,8 @@
|
||||
import { Injectable, Logger } from '@nestjs/common';
|
||||
import { ConfigService } from '@nestjs/config';
|
||||
import { TypeOrmModuleOptions, TypeOrmOptionsFactory } from '@nestjs/typeorm';
|
||||
import { EntityList } from '../models/entities';
|
||||
import { DefaultName, EnvPrefix } from './config.static';
|
||||
import { EntityList } from '../../models/entities';
|
||||
import { DefaultName, EnvPrefix } from '../config.static';
|
||||
import { HostConfigService } from './host.config.service';
|
||||
|
||||
@Injectable()
|
||||
@@ -1,7 +1,7 @@
|
||||
import { FactoryProvider, Injectable, Logger } from '@nestjs/common';
|
||||
import { JwtModuleOptions, JwtOptionsFactory } from '@nestjs/jwt';
|
||||
import { HasFailed } from 'picsur-shared/dist/types';
|
||||
import { SysPreferenceService } from '../collections/syspreferencesdb/syspreferencedb.service';
|
||||
import { SysPreferenceService } from '../../collections/syspreferencesdb/syspreferencedb.service';
|
||||
|
||||
@Injectable()
|
||||
export class JwtConfigService implements JwtOptionsFactory {
|
||||
44
backend/src/config/late/lateconfig.module.ts
Normal file
44
backend/src/config/late/lateconfig.module.ts
Normal file
@@ -0,0 +1,44 @@
|
||||
import { Logger, Module, OnModuleInit } from '@nestjs/common';
|
||||
import { SysPreferenceModule } from '../../collections/syspreferencesdb/syspreferencedb.module';
|
||||
import { SysPreferenceService } from '../../collections/syspreferencesdb/syspreferencedb.service';
|
||||
import { EarlyConfigModule } from '../early/earlyconfig.module';
|
||||
import { EarlyJwtConfigService } from '../early/earlyjwt.config.service';
|
||||
import { JwtConfigService } from './jwt.config.service';
|
||||
|
||||
// This module contains all configservices that depend on the syspref module
|
||||
// The syspref module can only be used when connected to the database
|
||||
// Since the syspref module requires the database config, we need this seperate
|
||||
// Otherwise we will create a circular depedency
|
||||
|
||||
@Module({
|
||||
imports: [SysPreferenceModule, EarlyConfigModule],
|
||||
providers: [JwtConfigService],
|
||||
exports: [JwtConfigService, EarlyConfigModule],
|
||||
})
|
||||
export class LateConfigModule implements OnModuleInit {
|
||||
private readonly logger = new Logger('LateConfigModule');
|
||||
|
||||
constructor(
|
||||
private envJwtConfigService: EarlyJwtConfigService,
|
||||
private prefService: SysPreferenceService,
|
||||
) {}
|
||||
|
||||
async onModuleInit() {
|
||||
await this.ensureJwtDefaultsLoaded();
|
||||
}
|
||||
|
||||
async ensureJwtDefaultsLoaded() {
|
||||
const envSecret = this.envJwtConfigService.getJwtSecret();
|
||||
const envExpiresIn = this.envJwtConfigService.getJwtExpiresIn();
|
||||
|
||||
if (envSecret === undefined) {
|
||||
await this.prefService.getPreference('jwt_secret');
|
||||
} else {
|
||||
await this.prefService.setPreference('jwt_secret', envSecret);
|
||||
}
|
||||
|
||||
if (envExpiresIn !== undefined) {
|
||||
await this.prefService.setPreference('jwt_expires_in', envExpiresIn);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,40 +0,0 @@
|
||||
import { Logger, Module, OnModuleInit } from '@nestjs/common';
|
||||
import { SysPreferenceModule } from '../collections/syspreferencesdb/syspreferencedb.module';
|
||||
import { SysPreferenceService } from '../collections/syspreferencesdb/syspreferencedb.service';
|
||||
import { PicsurConfigModule } from './config.module';
|
||||
import { EnvJwtConfigService } from './jwt.config.service';
|
||||
import { JwtConfigService } from './jwt.lateconfig.service';
|
||||
|
||||
// This module contains all configservices that depend on the syspref module
|
||||
// The syspref module can only be used when connected to the database
|
||||
// Since the syspref module requires the database config, we need this seperate
|
||||
// Otherwise we will create a circular depedency
|
||||
|
||||
@Module({
|
||||
imports: [SysPreferenceModule, PicsurConfigModule],
|
||||
providers: [JwtConfigService],
|
||||
exports: [JwtConfigService, PicsurConfigModule],
|
||||
})
|
||||
export class PicsurLateConfigModule implements OnModuleInit {
|
||||
private readonly logger = new Logger('PicsurLateConfigModule');
|
||||
|
||||
constructor(
|
||||
private envJwtConfigService: EnvJwtConfigService,
|
||||
private prefService: SysPreferenceService,
|
||||
) {}
|
||||
|
||||
async onModuleInit() {
|
||||
const secret = this.envJwtConfigService.getJwtSecret();
|
||||
const expiresIn = this.envJwtConfigService.getJwtExpiresIn();
|
||||
|
||||
if (secret === undefined) {
|
||||
await this.prefService.getPreference('jwt_secret');
|
||||
} else {
|
||||
await this.prefService.setPreference('jwt_secret', secret);
|
||||
}
|
||||
|
||||
if (expiresIn !== undefined) {
|
||||
await this.prefService.setPreference('jwt_expires_in', expiresIn);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,12 +1,12 @@
|
||||
import { Module } from '@nestjs/common';
|
||||
import { PicsurConfigModule } from '../config/config.module';
|
||||
import { EarlyConfigModule } from '../config/early/earlyconfig.module';
|
||||
import { MultiPartPipe } from './multipart.pipe';
|
||||
import { PostFilePipe } from './postfile.pipe';
|
||||
|
||||
@Module({
|
||||
imports: [PicsurConfigModule],
|
||||
imports: [EarlyConfigModule],
|
||||
providers: [MultiPartPipe, PostFilePipe],
|
||||
exports: [MultiPartPipe, PostFilePipe, PicsurConfigModule],
|
||||
exports: [MultiPartPipe, PostFilePipe, EarlyConfigModule],
|
||||
})
|
||||
export class DecoratorsModule {
|
||||
}
|
||||
|
||||
@@ -9,7 +9,7 @@ import { FastifyRequest } from 'fastify';
|
||||
import { MultipartFields, MultipartFile } from 'fastify-multipart';
|
||||
import { Newable } from 'picsur-shared/dist/types';
|
||||
import { strictValidate } from 'picsur-shared/dist/util/validate';
|
||||
import { MultipartConfigService } from '../config/multipart.config.service';
|
||||
import { MultipartConfigService } from '../config/early/multipart.config.service';
|
||||
import {
|
||||
MultiPartFieldDto,
|
||||
MultiPartFileDto
|
||||
|
||||
@@ -7,7 +7,7 @@ import {
|
||||
} from '@nestjs/common';
|
||||
import { FastifyRequest } from 'fastify';
|
||||
import { Multipart } from 'fastify-multipart';
|
||||
import { MultipartConfigService } from '../config/multipart.config.service';
|
||||
import { MultipartConfigService } from '../config/early/multipart.config.service';
|
||||
|
||||
@Injectable({ scope: Scope.REQUEST })
|
||||
export class PostFilePipe implements PipeTransform {
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
import { Module } from '@nestjs/common';
|
||||
import { PicsurConfigModule } from '../config/config.module';
|
||||
import { EarlyConfigModule } from '../config/early/earlyconfig.module';
|
||||
import { PicsurLoggerService } from './logger.service';
|
||||
|
||||
@Module({
|
||||
imports: [PicsurConfigModule],
|
||||
imports: [EarlyConfigModule],
|
||||
providers: [PicsurLoggerService],
|
||||
exports: [PicsurLoggerService],
|
||||
})
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
import { ConsoleLogger, Injectable, Scope } from '@nestjs/common';
|
||||
import { HostConfigService } from '../config/host.config.service';
|
||||
import { HostConfigService } from '../config/early/host.config.service';
|
||||
|
||||
@Injectable({ scope: Scope.DEFAULT })
|
||||
export class PicsurLoggerService extends ConsoleLogger {
|
||||
|
||||
@@ -9,7 +9,7 @@ import { ValidateOptions } from 'picsur-shared/dist/util/validate';
|
||||
import { AppModule } from './app.module';
|
||||
import { UsersService } from './collections/userdb/userdb.service';
|
||||
import { UserRolesService } from './collections/userdb/userrolesdb.service';
|
||||
import { HostConfigService } from './config/host.config.service';
|
||||
import { HostConfigService } from './config/early/host.config.service';
|
||||
import { MainExceptionFilter } from './layers/httpexception/httpexception.filter';
|
||||
import { SuccessInterceptor } from './layers/success/success.interceptor';
|
||||
import { PicsurLoggerService } from './logger/logger.service';
|
||||
|
||||
@@ -3,11 +3,8 @@ import { JwtModule } from '@nestjs/jwt';
|
||||
import { PassportModule } from '@nestjs/passport';
|
||||
import { SysPreferenceModule } from '../../collections/syspreferencesdb/syspreferencedb.module';
|
||||
import { UsersModule } from '../../collections/userdb/userdb.module';
|
||||
import {
|
||||
JwtConfigService,
|
||||
JwtSecretProvider
|
||||
} from '../../config/jwt.lateconfig.service';
|
||||
import { PicsurLateConfigModule } from '../../config/lateconfig.module';
|
||||
import { JwtConfigService, JwtSecretProvider } from '../../config/late/jwt.config.service';
|
||||
import { LateConfigModule } from '../../config/late/lateconfig.module';
|
||||
import { AuthManagerService } from './auth.service';
|
||||
import { GuestStrategy } from './guards/guest.strategy';
|
||||
import { JwtStrategy } from './guards/jwt.strategy';
|
||||
@@ -19,10 +16,10 @@ import { GuestService } from './guest.service';
|
||||
UsersModule,
|
||||
PassportModule,
|
||||
SysPreferenceModule,
|
||||
PicsurLateConfigModule,
|
||||
LateConfigModule,
|
||||
JwtModule.registerAsync({
|
||||
useExisting: JwtConfigService,
|
||||
imports: [PicsurLateConfigModule],
|
||||
imports: [LateConfigModule],
|
||||
}),
|
||||
],
|
||||
providers: [
|
||||
|
||||
@@ -1,12 +1,12 @@
|
||||
import { Logger, Module, OnModuleDestroy, OnModuleInit } from '@nestjs/common';
|
||||
import { ImageDBModule } from '../../collections/imagedb/imagedb.module';
|
||||
import { RolesModule } from '../../collections/roledb/roledb.module';
|
||||
import { PicsurConfigModule } from '../../config/config.module';
|
||||
import { HostConfigService } from '../../config/host.config.service';
|
||||
import { EarlyConfigModule } from '../../config/early/earlyconfig.module';
|
||||
import { HostConfigService } from '../../config/early/host.config.service';
|
||||
import { DemoManagerService } from './demomanager.service';
|
||||
|
||||
@Module({
|
||||
imports: [ImageDBModule, PicsurConfigModule, RolesModule],
|
||||
imports: [ImageDBModule, EarlyConfigModule, RolesModule],
|
||||
providers: [DemoManagerService],
|
||||
})
|
||||
export class DemoManagerModule implements OnModuleInit, OnModuleDestroy {
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
import { Controller, Get } from '@nestjs/common';
|
||||
import { plainToClass } from 'class-transformer';
|
||||
import { AllPermissionsResponse, InfoResponse } from 'picsur-shared/dist/dto/api/info.dto';
|
||||
import { HostConfigService } from '../../../config/host.config.service';
|
||||
import { HostConfigService } from '../../../config/early/host.config.service';
|
||||
import { NoPermissions } from '../../../decorators/permissions.decorator';
|
||||
import { PermissionsList } from '../../../models/dto/permissions.dto';
|
||||
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
import { Module } from '@nestjs/common';
|
||||
import { PicsurConfigModule } from '../../../config/config.module';
|
||||
import { EarlyConfigModule } from '../../../config/early/earlyconfig.module';
|
||||
import { InfoController } from './info.controller';
|
||||
|
||||
@Module({
|
||||
imports: [PicsurConfigModule],
|
||||
imports: [EarlyConfigModule],
|
||||
controllers: [InfoController],
|
||||
})
|
||||
export class InfoModule {}
|
||||
|
||||
Reference in New Issue
Block a user