refactor(nestjs): resource meta endpoint

This commit is contained in:
Ahmed Bouhuolia
2025-05-12 15:44:39 +02:00
parent c096135d9f
commit aef208b9d8
9 changed files with 69 additions and 9 deletions

View File

@@ -1,13 +1,12 @@
import { Injectable } from '@nestjs/common';
import { BaseModel } from '@/models/Model';
import { View } from './models/View.model';
import { ResourceService } from '../Resource/ResourceService';
@Injectable()
export class GetResourceViewsService {
constructor(private readonly resourceService: ResourceService) {}
/**
* Listing resource views.
* @param {number} tenantId -
* @param {string} resourceModel -
*/
public async getResourceViews(resourceName: string): Promise<View[]> {
@@ -15,7 +14,7 @@ export class GetResourceViewsService {
const resourceModel = this.resourceService.getResourceModel(resourceName);
// Default views.
const defaultViews = resourceModel.getDefaultViews();
const defaultViews = resourceModel().getDefaultViews();
return defaultViews;
}

View File

@@ -0,0 +1,20 @@
import { Controller, Get, Param } from '@nestjs/common';
import { ApiOperation, ApiResponse, ApiTags } from '@nestjs/swagger';
import { GetResourceViewsService } from './GetResourceViews.service';
@Controller('views')
@ApiTags('views')
export class ViewsController {
constructor(
private readonly getResourceViewsService: GetResourceViewsService,
) {}
@Get('/resource/:resourceModel')
@ApiResponse({ status: 200, description: 'Specific resource views' })
@ApiOperation({ summary: 'Get the given resource views' })
async getResourceViews(@Param('resourceModel') resourceModel: string) {
const views =
await this.getResourceViewsService.getResourceViews(resourceModel);
return { views };
}
}

View File

@@ -0,0 +1,11 @@
import { Module } from '@nestjs/common';
import { GetResourceViewsService } from './GetResourceViews.service';
import { ViewsController } from './Views.controller';
import { ResourceModule } from '../Resource/Resource.module';
@Module({
imports: [ResourceModule],
controllers: [ViewsController],
providers: [GetResourceViewsService],
})
export class ViewsModule {}