create main menu response

This commit is contained in:
Jurgis Sakalauskas
2022-12-07 09:53:14 +02:00
parent 8c9190675b
commit 54b8dc5871
4 changed files with 44 additions and 24 deletions
+17
View File
@@ -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);
}
}
+5 -12
View File
@@ -1,18 +1,11 @@
import { Controller, Get, Req } from '@nestjs/common'; import { Controller, Get } from '@nestjs/common';
import RequestRangeBytes from 'src/RequestRange/request-range-bytes.class'; import { KodiApiService } from './kodi-api.service';
import { RequestRange } from 'src/RequestRange/request-range.decorator';
import { Request } from 'express';
@Controller('api') @Controller('api')
export class KodiApiController { export class KodiApiController {
constructor(private readonly kodiApiService: KodiApiService) {}
@Get() @Get()
getMainMenu( getMainMenu() {
@RequestRange() requestedRange: RequestRangeBytes, return this.kodiApiService.getMainMenu();
@Req() request: Request,
) {
return {
range: requestedRange,
path: request.url,
};
} }
} }
+2 -1
View File
@@ -7,11 +7,12 @@ import {
import { KodiApiController } from './kodi-api.controller'; import { KodiApiController } from './kodi-api.controller';
import { KodiApiUrlRewriteMiddleware } from './UrlRewrite/url-rewrite.middleware'; import { KodiApiUrlRewriteMiddleware } from './UrlRewrite/url-rewrite.middleware';
import { LrtModule } from './LRT/lrt.module'; import { LrtModule } from './LRT/lrt.module';
import { KodiApiService } from './kodi-api.service';
@Module({ @Module({
imports: [LrtModule], imports: [LrtModule],
controllers: [KodiApiController], controllers: [KodiApiController],
providers: [], providers: [KodiApiService],
}) })
export class KodiApiModule implements NestModule { export class KodiApiModule implements NestModule {
configure(consumer: MiddlewareConsumer) { configure(consumer: MiddlewareConsumer) {
+20 -11
View File
@@ -1,21 +1,30 @@
import { Injectable } from '@nestjs/common'; import { Injectable } from '@nestjs/common';
import ApiResponse from './Dto/api-response.dto'; import ApiResponse from './Dto/api-response.dto';
import NotificationResponse from './Dto/notification-response'; import { KodiApiResponseFactory } from './kodi-api-response.factory';
@Injectable() @Injectable()
export class KodiApiService { export class KodiApiService {
getMainMenu(): string { constructor(
return 'Hello World!'; private readonly kodiApiResponseFactory: KodiApiResponseFactory,
) {}
getMainMenu(): ApiResponse {
const apiResponse = this.kodiApiResponseFactory.createApiResponse();
apiResponse.setTitle('Menu');
this.createMainMenu(apiResponse);
return apiResponse;
} }
createApiResponse(): ApiResponse { private createMainMenu(apiResponse: ApiResponse): void {
return new ApiResponse(); const items = {
} all: 'All files',
torr: 'Torr',
lrt: 'LRT.lt',
};
createNotificationResponse( for (const [path, label] of Object.entries(items)) {
message: string, apiResponse.createItem().setLabel(label).setToFolder().setPath(path);
refreshContainer = true, }
): NotificationResponse {
return new NotificationResponse(message, refreshContainer);
} }
} }