From 0272b31a13338759030a44122a0198d993241fa4 Mon Sep 17 00:00:00 2001 From: Jurgis Sakalauskas Date: Thu, 9 Nov 2023 11:42:05 +0200 Subject: [PATCH] add alias edit --- nest-cli.json | 5 ++ src/AliasesModule/View/index.html | 109 +++++++++++++++++++++++++ src/AliasesModule/aliases.cotroller.ts | 52 ++++++++++++ src/AliasesModule/aliases.module.ts | 13 +++ src/app.module.ts | 3 + 5 files changed, 182 insertions(+) create mode 100644 src/AliasesModule/View/index.html create mode 100644 src/AliasesModule/aliases.cotroller.ts create mode 100644 src/AliasesModule/aliases.module.ts diff --git a/nest-cli.json b/nest-cli.json index f53cb4d..d398548 100644 --- a/nest-cli.json +++ b/nest-cli.json @@ -8,6 +8,11 @@ "include": "KodiApiInterface/View/", "outDir": "dist/src", "watchAssets": true + }, + { + "include": "AliasesModule/View/", + "outDir": "dist/src", + "watchAssets": true } ] } diff --git a/src/AliasesModule/View/index.html b/src/AliasesModule/View/index.html new file mode 100644 index 0000000..3a0949f --- /dev/null +++ b/src/AliasesModule/View/index.html @@ -0,0 +1,109 @@ + + + + + + + + + +
+
+
+
+
+
+ +
+
+ + + + + + + diff --git a/src/AliasesModule/aliases.cotroller.ts b/src/AliasesModule/aliases.cotroller.ts new file mode 100644 index 0000000..f8588c6 --- /dev/null +++ b/src/AliasesModule/aliases.cotroller.ts @@ -0,0 +1,52 @@ +import { Body, Controller, Get, Post, Res } from '@nestjs/common'; +import { JsonFileDataStorageService } from '../DataStorage/json-file-data-storage.service'; +import { createReadStream } from 'fs'; +import { join } from 'path'; +import { Response } from 'express'; + +@Controller('aliases') +export class AliasesController { + constructor(private readonly jsonDs: JsonFileDataStorageService) {} + + @Get('') + async main(@Res() res: Response) { + //todo - make the views directory global so no need to edit nest-cli.json every time + const readable = createReadStream(join(__dirname, './View/index.html')); + readable.pipe(res); + } + + @Get('data') + async getData() { + return this.jsonDs.get('aliases', []); + } + + @Post('') + async setData(@Body() data: any) { + await this.jsonDs.set('aliases', data); + return data; + } + + @Get('schema') + getSchema() { + return { + title: 'Aliases', + type: 'array', + format: 'table', + uniqueItems: true, + items: { + type: 'object', + title: 'Alias', + properties: { + alias: { + type: 'string', + title: 'alias', + }, + title: { + type: 'string', + title: 'title', + }, + }, + }, + }; + } +} diff --git a/src/AliasesModule/aliases.module.ts b/src/AliasesModule/aliases.module.ts new file mode 100644 index 0000000..d989484 --- /dev/null +++ b/src/AliasesModule/aliases.module.ts @@ -0,0 +1,13 @@ +import { Module } from '@nestjs/common'; +import { AliasesController } from './aliases.cotroller'; +import { DataStorageModule } from '../DataStorage/data-storage.module'; + +/** + * Playground module for playing around + */ +@Module({ + imports: [DataStorageModule], + controllers: [AliasesController], + providers: [], +}) +export class AliasesModule {} diff --git a/src/app.module.ts b/src/app.module.ts index a48b26b..56d2df8 100644 --- a/src/app.module.ts +++ b/src/app.module.ts @@ -11,12 +11,15 @@ import { RequestLogMiddleware } from './RequestLog/request-log.middleware'; import { TryModule } from './TryOutModule/try.module'; import { configService } from './config/config.service'; import { KodiApiInterfaceModule } from './KodiApiInterface/kodi-api-interface.module'; +import { AliasesModule } from './AliasesModule/aliases.module'; @Module({ imports: [ TryModule, + AliasesModule, KodiApiModule, KodiApiInterfaceModule, + /** all routes must be before static module to be reachable */ StaticModule, TypeOrmModule.forRoot(configService.getTypeOrmConfig()), ],