Files
lcbp3/backend/src/modules/dashboard/dashboard.controller.ts
admin dcd126d704
Some checks failed
Spec Validation / validate-markdown (push) Has been cancelled
Spec Validation / validate-diagrams (push) Has been cancelled
Spec Validation / check-todos (push) Has been cancelled
251208:0010 Backend & Frontend Debug
2025-12-08 00:10:37 +07:00

52 lines
1.6 KiB
TypeScript

// File: src/modules/dashboard/dashboard.controller.ts
// บันทึกการแก้ไข: สร้างใหม่สำหรับ Dashboard API Endpoints
import { Controller, Get, Query, UseGuards } from '@nestjs/common';
import { ApiTags, ApiOperation, ApiBearerAuth } from '@nestjs/swagger';
// Guards & Decorators
import { JwtAuthGuard } from '../../common/guards/jwt-auth.guard';
import { CurrentUser } from '../../common/decorators/current-user.decorator';
import { User } from '../user/entities/user.entity';
// Service
import { DashboardService } from './dashboard.service';
// DTOs
import { GetActivityDto, GetPendingDto } from './dto';
@ApiTags('Dashboard')
@ApiBearerAuth()
@UseGuards(JwtAuthGuard)
@Controller('dashboard')
export class DashboardController {
constructor(private readonly dashboardService: DashboardService) {}
/**
* ดึงสถิติ Dashboard
*/
@Get('stats')
@ApiOperation({ summary: 'Get dashboard statistics' })
async getStats(@CurrentUser() user: User) {
return this.dashboardService.getStats(user.user_id);
}
/**
* ดึง Recent Activity
*/
@Get('activity')
@ApiOperation({ summary: 'Get recent activity' })
async getActivity(@CurrentUser() user: User, @Query() query: GetActivityDto) {
return this.dashboardService.getActivity(user.user_id, query);
}
/**
* ดึง Pending Tasks
*/
@Get('pending')
@ApiOperation({ summary: 'Get pending tasks for current user' })
async getPending(@CurrentUser() user: User, @Query() query: GetPendingDto) {
return this.dashboardService.getPending(user.user_id, query);
}
}