Files
tk-factory-services/tkeg/api/app/routers/jobs.py
2026-03-16 15:41:58 +09:00

49 lines
1.8 KiB
Python

"""Job(프로젝트) 라우터 — tkuser API 프록시"""
from fastapi import APIRouter, Depends, HTTPException, Request
from ..auth.middleware import get_current_user
from ..utils.tkuser_client import get_token_from_request, get_projects, get_project
router = APIRouter()
@router.get("/")
async def get_jobs(request: Request, user: dict = Depends(get_current_user)):
"""프로젝트 목록 조회 (tkuser 프록시)"""
token = get_token_from_request(request)
projects = await get_projects(token, active_only=True)
return {
"success": True,
"total_count": len(projects),
"jobs": [
{
"job_no": p.get("job_no"),
"job_name": p.get("project_name"),
"client_name": p.get("client_name"),
"status": "진행중" if p.get("is_active") else "완료",
"created_at": p.get("created_at"),
"project_name": p.get("project_name"),
}
for p in projects
],
}
@router.get("/{job_no}")
async def get_job(job_no: str, request: Request, user: dict = Depends(get_current_user)):
"""프로젝트 상세 조회 — tkeg는 job_no로 참조하므로 목록에서 필터"""
token = get_token_from_request(request)
projects = await get_projects(token, active_only=False)
matched = next((p for p in projects if p.get("job_no") == job_no), None)
if not matched:
raise HTTPException(status_code=404, detail="Job을 찾을 수 없습니다")
return {
"success": True,
"job": {
"job_no": matched.get("job_no"),
"job_name": matched.get("project_name"),
"client_name": matched.get("client_name"),
"status": "진행중" if matched.get("is_active") else "완료",
"created_at": matched.get("created_at"),
},
}