diff --git a/src/KodiApi/kodi-api-response.factory.ts b/src/KodiApi/kodi-api-response.factory.ts new file mode 100644 index 0000000..255e8c9 --- /dev/null +++ b/src/KodiApi/kodi-api-response.factory.ts @@ -0,0 +1,17 @@ +import { Injectable } from '@nestjs/common'; +import ApiResponse from './Dto/api-response.dto'; +import NotificationResponse from './Dto/notification-response'; + +@Injectable() +export class KodiApiResponseFactory { + createApiResponse(): ApiResponse { + return new ApiResponse(); + } + + createNotificationResponse( + message: string, + refreshContainer = true, + ): NotificationResponse { + return new NotificationResponse(message, refreshContainer); + } +} diff --git a/src/KodiApi/kodi-api.controller.ts b/src/KodiApi/kodi-api.controller.ts index a7afba1..d90b0c0 100644 --- a/src/KodiApi/kodi-api.controller.ts +++ b/src/KodiApi/kodi-api.controller.ts @@ -1,18 +1,11 @@ -import { Controller, Get, Req } from '@nestjs/common'; -import RequestRangeBytes from 'src/RequestRange/request-range-bytes.class'; -import { RequestRange } from 'src/RequestRange/request-range.decorator'; -import { Request } from 'express'; +import { Controller, Get } from '@nestjs/common'; +import { KodiApiService } from './kodi-api.service'; @Controller('api') export class KodiApiController { + constructor(private readonly kodiApiService: KodiApiService) {} @Get() - getMainMenu( - @RequestRange() requestedRange: RequestRangeBytes, - @Req() request: Request, - ) { - return { - range: requestedRange, - path: request.url, - }; + getMainMenu() { + return this.kodiApiService.getMainMenu(); } } diff --git a/src/KodiApi/kodi-api.module.ts b/src/KodiApi/kodi-api.module.ts index 9f5696d..10e607f 100644 --- a/src/KodiApi/kodi-api.module.ts +++ b/src/KodiApi/kodi-api.module.ts @@ -7,11 +7,12 @@ import { import { KodiApiController } from './kodi-api.controller'; import { KodiApiUrlRewriteMiddleware } from './UrlRewrite/url-rewrite.middleware'; import { LrtModule } from './LRT/lrt.module'; +import { KodiApiService } from './kodi-api.service'; @Module({ imports: [LrtModule], controllers: [KodiApiController], - providers: [], + providers: [KodiApiService], }) export class KodiApiModule implements NestModule { configure(consumer: MiddlewareConsumer) { diff --git a/src/KodiApi/kodi-api.service.ts b/src/KodiApi/kodi-api.service.ts index e3e49c1..2160464 100644 --- a/src/KodiApi/kodi-api.service.ts +++ b/src/KodiApi/kodi-api.service.ts @@ -1,21 +1,30 @@ import { Injectable } from '@nestjs/common'; import ApiResponse from './Dto/api-response.dto'; -import NotificationResponse from './Dto/notification-response'; +import { KodiApiResponseFactory } from './kodi-api-response.factory'; @Injectable() export class KodiApiService { - getMainMenu(): string { - return 'Hello World!'; + constructor( + private readonly kodiApiResponseFactory: KodiApiResponseFactory, + ) {} + getMainMenu(): ApiResponse { + const apiResponse = this.kodiApiResponseFactory.createApiResponse(); + + apiResponse.setTitle('Menu'); + this.createMainMenu(apiResponse); + + return apiResponse; } - createApiResponse(): ApiResponse { - return new ApiResponse(); - } + private createMainMenu(apiResponse: ApiResponse): void { + const items = { + all: 'All files', + torr: 'Torr', + lrt: 'LRT.lt', + }; - createNotificationResponse( - message: string, - refreshContainer = true, - ): NotificationResponse { - return new NotificationResponse(message, refreshContainer); + for (const [path, label] of Object.entries(items)) { + apiResponse.createItem().setLabel(label).setToFolder().setPath(path); + } } }