admin.controller.ts 1.1 KB

123456789101112131415161718192021222324252627282930313233
  1. import { Controller, Get, Post, Put, Body, UseGuards, Request } from '@nestjs/common';
  2. import { AdminService } from './admin.service';
  3. import { CombinedAuthGuard } from '../auth/combined-auth.guard';
  4. import { RolesGuard } from '../auth/roles.guard';
  5. import { Roles } from '../auth/roles.decorator';
  6. import { UserRole } from '../user/user-role.enum';
  7. @Controller('v1/admin')
  8. @UseGuards(CombinedAuthGuard, RolesGuard)
  9. @Roles(UserRole.TENANT_ADMIN, UserRole.SUPER_ADMIN)
  10. export class AdminController {
  11. constructor(private readonly adminService: AdminService) { }
  12. @Get('users')
  13. async getUsers(@Request() req: any) {
  14. return this.adminService.getTenantUsers(req.user.tenantId);
  15. }
  16. @Get('settings')
  17. async getSettings(@Request() req: any) {
  18. return this.adminService.getTenantSettings(req.user.tenantId);
  19. }
  20. @Put('settings')
  21. async updateSettings(@Request() req: any, @Body() body: any) {
  22. return this.adminService.updateTenantSettings(req.user.tenantId, body);
  23. }
  24. @Get('pending-shares')
  25. async getPendingShares(@Request() req: any) {
  26. return this.adminService.getPendingShares(req.user.tenantId);
  27. }
  28. }