mirror of
https://github.com/dadosfera/maestro.git
synced 2026-09-13 20:34:48 +00:00
49 lines
1.5 KiB
TypeScript
49 lines
1.5 KiB
TypeScript
import { Controller, Get, Inject } from '@nestjs/common';
|
|
import { ApiHeader, ApiOkResponse, ApiTags } from '@nestjs/swagger';
|
|
import { DadosferaLogger } from '@dadosfera/dadosfera-logs';
|
|
import { Authenticated } from 'src/decorators/authentication.decorator';
|
|
import { PermissionUsages } from 'src/authentication/permissions.enum';
|
|
import { RequestUser, User } from 'src/decorators/user.decorator';
|
|
import { LanguageEnum } from 'src/utils/languages.enum';
|
|
import { GetPublicPermissionsRes } from './dto/entities';
|
|
import { PermissionsService } from './permissions.service';
|
|
import { Language } from 'src/decorators/language.decorator';
|
|
import { ApiInternalOnlyController } from 'src/decorators/swagger.decorator';
|
|
|
|
@ApiInternalOnlyController()
|
|
@ApiTags('Permissions')
|
|
@Authenticated()
|
|
@Controller('permissions')
|
|
@ApiHeader({
|
|
name: 'dadosfera-lang',
|
|
enum: LanguageEnum,
|
|
required: false,
|
|
description: 'Defaults to pt-br',
|
|
})
|
|
export class PermissionsController {
|
|
logger: DadosferaLogger;
|
|
|
|
constructor(
|
|
@Inject(DadosferaLogger)
|
|
dadosferaLogger: DadosferaLogger,
|
|
private permissionsService: PermissionsService,
|
|
) {
|
|
this.logger = dadosferaLogger.logger;
|
|
}
|
|
|
|
@Get()
|
|
@ApiOkResponse({ type: GetPublicPermissionsRes })
|
|
getPublicPermissions(
|
|
@User() user: RequestUser,
|
|
@Language() language: LanguageEnum,
|
|
) {
|
|
this.logger.info('getPublicPermissions', { user });
|
|
|
|
const permissionGroups = this.permissionsService.getPermissionsGrouped(
|
|
PermissionUsages.PUBLIC,
|
|
language,
|
|
);
|
|
return { permissionGroups };
|
|
}
|
|
}
|