추가
This commit is contained in:
30
backend/api/project/my-projects.get.ts
Normal file
30
backend/api/project/my-projects.get.ts
Normal file
@@ -0,0 +1,30 @@
|
||||
import { query } from '../../utils/db'
|
||||
|
||||
/**
|
||||
* 내가 보고서 작성한 프로젝트 목록
|
||||
* GET /api/project/my-projects
|
||||
*/
|
||||
export default defineEventHandler(async (event) => {
|
||||
const userId = getCookie(event, 'user_id')
|
||||
if (!userId) {
|
||||
throw createError({ statusCode: 401, message: '로그인이 필요합니다.' })
|
||||
}
|
||||
|
||||
// 내가 주간보고를 작성한 프로젝트 + 전체 활성 프로젝트
|
||||
const projects = await query(`
|
||||
SELECT DISTINCT p.*,
|
||||
CASE WHEN r.author_id IS NOT NULL THEN true ELSE false END as has_my_report
|
||||
FROM wr_project_info p
|
||||
LEFT JOIN wr_weekly_report_detail r ON p.project_id = r.project_id AND r.author_id = $1
|
||||
WHERE p.project_status = 'ACTIVE'
|
||||
ORDER BY has_my_report DESC, p.project_name
|
||||
`, [parseInt(userId)])
|
||||
|
||||
return projects.map((p: any) => ({
|
||||
projectId: p.project_id,
|
||||
projectCode: p.project_code,
|
||||
projectName: p.project_name,
|
||||
clientName: p.client_name,
|
||||
hasMyReport: p.has_my_report
|
||||
}))
|
||||
})
|
||||
Reference in New Issue
Block a user