refactor(backend): refactor backend code

This commit is contained in:
raiper34
2024-09-30 14:00:12 +02:00
parent 117110fae9
commit 7359a13a7c
7 changed files with 40 additions and 30 deletions
+1
View File
@@ -2,3 +2,4 @@ DB_PATH=./config/db.sqlite
FE_PATH=../frontend/browser
DOWNLOADS_PATH=./downloads
FORMAT=mp3
PORT=3000
+1 -2
View File
@@ -1,6 +1,5 @@
import { Test, TestingModule } from '@nestjs/testing';
import { AppController } from './app.controller';
import { AppService } from './app.service';
describe('AppController', () => {
let appController: AppController;
@@ -8,7 +7,7 @@ describe('AppController', () => {
beforeEach(async () => {
const app: TestingModule = await Test.createTestingModule({
controllers: [AppController],
providers: [AppService],
providers: [],
}).compile();
appController = app.get<AppController>(AppController);
+24 -18
View File
@@ -2,43 +2,49 @@ import { Module } from '@nestjs/common';
import { AppController } from './app.controller';
import { ScheduleModule } from '@nestjs/schedule';
import { ServeStaticModule } from '@nestjs/serve-static';
import {ConfigModule, ConfigService} from "@nestjs/config";
import {TypeOrmModule} from '@nestjs/typeorm';
import {TrackEntity} from "./track/track.entity";
import {TrackModule} from "./track/track.module";
import {PlaylistModule} from "./playlist/playlist.module";
import {PlaylistEntity} from "./playlist/playlist.entity";
import { ConfigModule, ConfigService } from '@nestjs/config';
import { TypeOrmModule } from '@nestjs/typeorm';
import { TrackEntity } from './track/track.entity';
import { TrackModule } from './track/track.module';
import { PlaylistModule } from './playlist/playlist.module';
import { PlaylistEntity } from './playlist/playlist.entity';
import { resolve } from 'path';
import {EnviromentEnum} from "./enviroment.enum";
import { EnvironmentEnum } from './environmentEnum';
@Module({
imports: [
ConfigModule.forRoot(),
ScheduleModule.forRoot(),
TypeOrmModule.forRootAsync({
imports:[ConfigModule],
imports: [ConfigModule],
useFactory: async (configService: ConfigService) => ({
type: 'sqlite',
database: resolve(__dirname, configService.get<string>(EnviromentEnum.DB_PATH)),
database: resolve(
__dirname,
configService.get<string>(EnvironmentEnum.DB_PATH),
),
entities: [TrackEntity, PlaylistEntity],
synchronize: true,
}),
inject: [ConfigService]
inject: [ConfigService],
}),
ServeStaticModule.forRootAsync({
imports:[ConfigModule],
useFactory: async (configService: ConfigService) => ([{
rootPath: resolve(__dirname, configService.get<string>(EnviromentEnum.FE_PATH)),
imports: [ConfigModule],
useFactory: async (configService: ConfigService) => [
{
rootPath: resolve(
__dirname,
configService.get<string>(EnvironmentEnum.FE_PATH),
),
exclude: ['/api/(.*)'],
}]),
inject: [ConfigService]
},
],
inject: [ConfigService],
}),
TrackModule,
PlaylistModule,
],
controllers: [
AppController,
],
controllers: [AppController],
providers: [],
})
export class AppModule {}
@@ -1,4 +1,4 @@
export enum EnviromentEnum {
export enum EnvironmentEnum {
DB_PATH = 'DB_PATH',
FE_PATH = 'FE_PATH',
DOWNLOADS_PATH = 'DOWNLOADS_PATH',
+5 -1
View File
@@ -6,8 +6,12 @@ import { resolve } from 'path';
async function bootstrap() {
const app = await NestFactory.create(AppModule);
app.setGlobalPrefix('api');
await app.listen(3000);
await app.listen(process.env.PORT || 3000);
}
bootstrap();
if (!process.env.DOWNLOADS_PATH) {
throw new Error('DOWNLOADS_PATH environment variable is missing');
}
const folderName = resolve(__dirname, process.env.DOWNLOADS_PATH);
!fs.existsSync(folderName) && fs.mkdirSync(folderName);
+2 -2
View File
@@ -1,7 +1,7 @@
import { Injectable } from '@nestjs/common';
import { ConfigService } from '@nestjs/config';
import { resolve } from 'path';
import { EnviromentEnum } from '../enviroment.enum';
import { EnvironmentEnum } from '../environmentEnum';
@Injectable()
export class UtilsService {
@@ -11,7 +11,7 @@ export class UtilsService {
return resolve(
__dirname,
'..',
this.configService.get<string>(EnviromentEnum.DOWNLOADS_PATH),
this.configService.get<string>(EnvironmentEnum.DOWNLOADS_PATH),
name,
);
}
+4 -4
View File
@@ -12,8 +12,8 @@ import { resolve } from 'path';
import { WebSocketGateway, WebSocketServer } from '@nestjs/websockets';
import { Server } from 'socket.io';
import * as ffmpeg from 'fluent-ffmpeg';
import { EnviromentEnum } from '../enviroment.enum';
import {UtilsService} from "../shared/utils.service";
import { EnvironmentEnum } from '../environmentEnum';
import { UtilsService } from '../shared/utils.service';
enum WsTrackOperation {
New = 'trackNew',
@@ -138,7 +138,7 @@ export class TrackService {
}).on('error', (err) => reject(err));
ffmpeg(audio)
.outputOptions(ffmpegOptions)
.format(this.configService.get<string>(EnviromentEnum.FORMAT))
.format(this.configService.get<string>(EnvironmentEnum.FORMAT))
.on('error', (err) => reject(err))
.pipe(
fs
@@ -150,7 +150,7 @@ export class TrackService {
}
getTrackFileName(track: TrackEntity): string {
return `${track.artist} - ${track.name.replace('/', '')}.${this.configService.get<string>(EnviromentEnum.FORMAT)}`;
return `${track.artist} - ${track.name.replace('/', '')}.${this.configService.get<string>(EnvironmentEnum.FORMAT)}`;
}
getFolderName(track: TrackEntity, playlist: PlaylistEntity): string {