diff --git a/packages/server/src/modules/App/App.module.ts b/packages/server/src/modules/App/App.module.ts index e5170c207..1f16f54ec 100644 --- a/packages/server/src/modules/App/App.module.ts +++ b/packages/server/src/modules/App/App.module.ts @@ -83,6 +83,8 @@ import { S3Module } from '../S3/S3.module'; import { ExportModule } from '../Export/Export.module'; import { ImportModule } from '../Import/Import.module'; import { CreditNotesApplyInvoiceModule } from '../CreditNotesApplyInvoice/CreditNotesApplyInvoice.module'; +import { ResourceModule } from '../Resource/Resource.module'; +import { ViewsModule } from '../Views/Views.module'; @Module({ imports: [ @@ -200,7 +202,9 @@ import { CreditNotesApplyInvoiceModule } from '../CreditNotesApplyInvoice/Credit AttachmentsModule, S3Module, ExportModule, - ImportModule + ImportModule, + ResourceModule, + ViewsModule ], controllers: [AppController], providers: [ diff --git a/packages/server/src/modules/Dashboard/Dashboard.service.ts b/packages/server/src/modules/Dashboard/Dashboard.service.ts index 05408ff6b..22d477732 100644 --- a/packages/server/src/modules/Dashboard/Dashboard.service.ts +++ b/packages/server/src/modules/Dashboard/Dashboard.service.ts @@ -1,14 +1,14 @@ +import { Inject } from '@nestjs/common'; import { TenantModelProxy } from '../System/models/TenantBaseModel'; import { FeaturesManager } from '../Features/FeaturesManager'; import { ConfigService } from '@nestjs/config'; import { TenancyContext } from '../Tenancy/TenancyContext.service'; import { IFeatureAllItem } from '@/common/types/Features'; -import { Inject } from '@nestjs/common'; import { TenantUser } from '../Tenancy/TenancyModels/models/TenantUser.model'; interface IRoleAbility { subject: string; - ability: string; + action: string; } interface IDashboardBootMeta { @@ -70,7 +70,7 @@ export class DashboardService { .throwIfNotFound(); return tenantUser.role.slug === 'admin' - ? [{ subject: 'all', ability: 'manage' }] + ? [{ subject: 'all', action: 'manage' }] : this.transformRoleAbility(tenantUser.role.permissions); }; } diff --git a/packages/server/src/modules/FinancialStatements/modules/InventoryItemDetails/InventoryItemDetailsTable.ts b/packages/server/src/modules/FinancialStatements/modules/InventoryItemDetails/InventoryItemDetailsTable.ts index 0076b01ec..e42408c83 100644 --- a/packages/server/src/modules/FinancialStatements/modules/InventoryItemDetails/InventoryItemDetailsTable.ts +++ b/packages/server/src/modules/FinancialStatements/modules/InventoryItemDetails/InventoryItemDetailsTable.ts @@ -5,6 +5,7 @@ import { IInventoryDetailsClosing, IInventoryDetailsNode, IInventoryDetailsOpening, + IInvetoryItemDetailDOO, } from './InventoryItemDetails.types'; import { I18nService } from 'nestjs-i18n'; import { IInventoryDetailsData } from './InventoryItemDetails.types'; @@ -33,7 +34,7 @@ export class InventoryItemDetailsTable { * Constructor method. * @param {ICashFlowStatement} report - Report statement. */ - constructor(reportStatement: IInventoryDetailsData, i18n: I18nService) { + constructor(reportStatement: IInvetoryItemDetailDOO, i18n: I18nService) { this.report = reportStatement; this.i18n = i18n; } @@ -146,6 +147,8 @@ export class InventoryItemDetailsTable { * @return {ITableRow} */ private itemMapper = (node: IInventoryDetailsNode): ITableRow => { + console.log(node, 'node'); + // @ts-ignore return R.compose( R.when( diff --git a/packages/server/src/modules/FinancialStatements/modules/InventoryItemDetails/InventoryItemDetailsTableInjectable.ts b/packages/server/src/modules/FinancialStatements/modules/InventoryItemDetails/InventoryItemDetailsTableInjectable.ts index 845dbf618..2b879820d 100644 --- a/packages/server/src/modules/FinancialStatements/modules/InventoryItemDetails/InventoryItemDetailsTableInjectable.ts +++ b/packages/server/src/modules/FinancialStatements/modules/InventoryItemDetails/InventoryItemDetailsTableInjectable.ts @@ -25,7 +25,7 @@ export class InventoryDetailsTableInjectable { const inventoryDetails = await this.inventoryDetails.inventoryDetails(query); - const table = new InventoryItemDetailsTable(inventoryDetails.data, this.i18n); + const table = new InventoryItemDetailsTable(inventoryDetails, this.i18n); return { table: { diff --git a/packages/server/src/modules/Resource/Resource.controller.ts b/packages/server/src/modules/Resource/Resource.controller.ts new file mode 100644 index 000000000..fbf389ebf --- /dev/null +++ b/packages/server/src/modules/Resource/Resource.controller.ts @@ -0,0 +1,21 @@ +import { Controller, Get, Param } from '@nestjs/common'; +import { GetResourceViewsService } from '../Views/GetResourceViews.service'; +import { ResourceService } from './ResourceService'; +import { ApiOperation, ApiResponse, ApiTags } from '@nestjs/swagger'; + +@Controller('resources') +@ApiTags('resources') +export class ResourceController { + constructor(private readonly resourcesService: ResourceService) {} + + @Get('/:resourceModel/meta') + @ApiResponse({ status: 200, description: 'Retrieves the resource meta' }) + @ApiOperation({ summary: 'Retrieves the resource meta' }) + getResourceMeta(@Param('resourceModel') resourceModel: string) { + const resourceMeta = this.resourcesService.getResourceMeta(resourceModel); + + return { + resourceMeta, + }; + } +} diff --git a/packages/server/src/modules/Resource/Resource.module.ts b/packages/server/src/modules/Resource/Resource.module.ts index 297d27414..f919a8dc1 100644 --- a/packages/server/src/modules/Resource/Resource.module.ts +++ b/packages/server/src/modules/Resource/Resource.module.ts @@ -4,10 +4,12 @@ import { BranchesModule } from '../Branches/Branches.module'; import { WarehousesModule } from '../Warehouses/Warehouses.module'; import { AccountsExportable } from '../Accounts/AccountsExportable.service'; import { AccountsModule } from '../Accounts/Accounts.module'; +import { ResourceController } from './Resource.controller'; @Module({ imports: [BranchesModule, WarehousesModule, AccountsModule], providers: [ResourceService], exports: [ResourceService], + controllers: [ResourceController] }) export class ResourceModule {} diff --git a/packages/server/src/modules/Views/GetResourceViews.service.ts b/packages/server/src/modules/Views/GetResourceViews.service.ts index 1c6135b79..8dcd2c733 100644 --- a/packages/server/src/modules/Views/GetResourceViews.service.ts +++ b/packages/server/src/modules/Views/GetResourceViews.service.ts @@ -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 { @@ -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; } diff --git a/packages/server/src/modules/Views/Views.controller.ts b/packages/server/src/modules/Views/Views.controller.ts new file mode 100644 index 000000000..5064fe8ae --- /dev/null +++ b/packages/server/src/modules/Views/Views.controller.ts @@ -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 }; + } +} diff --git a/packages/server/src/modules/Views/Views.module.ts b/packages/server/src/modules/Views/Views.module.ts new file mode 100644 index 000000000..f700f1843 --- /dev/null +++ b/packages/server/src/modules/Views/Views.module.ts @@ -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 {}