mirror of
https://github.com/sakaljurgis/kodi-api-server.git
synced 2026-07-08 20:37:41 +00:00
create main menu response
This commit is contained in:
@@ -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);
|
||||
}
|
||||
}
|
||||
@@ -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();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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) {
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user