Press n or j to go to the next uncovered block, b, p or k for the previous block.
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 | 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 3x 3x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x | import { Controller, Get, Logger, Param, UseGuards } from '@nestjs/common';
import { ApiBearerAuth, ApiTags } from '@nestjs/swagger';
import { Company, type CustomObjectDefinition } from '@amalia/core/models';
import { AmaliaAuthGuard, CheckPolicies, CurrentUserCompany, PoliciesGuard } from '@amalia/kernel/auth/core';
import { canModifyPlans, canViewData } from '@amalia/kernel/auth/shared';
import { CustomObjectDefinitionsService } from './customObjectDefinitions.service';
/**
* Controller to manage object definitions.
*/
@UseGuards(AmaliaAuthGuard, PoliciesGuard)
@ApiBearerAuth()
@ApiTags('objects')
@Controller('objects-definitions')
export class CustomObjectDefinitionsController {
private readonly logger = new Logger(CustomObjectDefinitionsController.name);
public constructor(private readonly customObjectDefinitionsService: CustomObjectDefinitionsService) {}
/**
* Paginate object definitions for a company.
* @param company company
*/
@Get()
@CheckPolicies((ability) => canViewData(ability) || canModifyPlans(ability))
public async getAll(@CurrentUserCompany() company: Company): Promise<CustomObjectDefinition[]> {
return this.customObjectDefinitionsService.findAll(company);
}
/**
* Get one object definition given a machineName.
* @param company company
*/
@Get(':customObjectDefinitionMachineName')
@CheckPolicies((ability) => canViewData(ability) || canModifyPlans(ability))
public async getOne(
@CurrentUserCompany() company: Company,
@Param('customObjectDefinitionMachineName')
customObjectDefinitionMachineName: CustomObjectDefinition['machineName'],
): Promise<CustomObjectDefinition | null> {
return this.customObjectDefinitionsService.findByMachineName(company, customObjectDefinitionMachineName);
}
}
|