Files
SAAS/src/app/api/workspace/teams/route.ts
2025-05-14 00:30:11 +08:00

73 lines
1.9 KiB
TypeScript

/**
* 工作空间团队列表API路由
* 作者: 阿瑞
* 功能: 获取当前工作空间下的所有团队
* 版本: 1.7
*/
import { NextRequest, NextResponse } from 'next/server';
import { connectSystemDB, RequestWithDB } from '@/lib/db';
/**
* 获取工作空间的团队列表
*/
export async function GET(req: NextRequest) {
try {
console.log('API: 接收到获取团队列表请求');
// 获取查询参数
const url = new URL(req.url);
const workspaceId = url.searchParams.get('workspaceId');
console.log('API: 获取工作空间ID:', workspaceId);
// 验证参数
if (!workspaceId) {
console.log('API: 缺少工作空间ID参数');
return NextResponse.json({
success: false,
error: '缺少工作空间ID参数'
}, { status: 400 });
}
// 使用数据库连接模式
const handler = async (dbReq: RequestWithDB) => {
// 查询工作空间下的所有团队
const [rows] = await dbReq.db.query(
`SELECT id, team_code as teamCode, name, status
FROM teams
WHERE workspace_id = ?
ORDER BY name ASC`,
[workspaceId]
);
// 转换为纯JavaScript对象
const teams = JSON.parse(JSON.stringify(rows));
console.log('API: 查询到团队数量:', teams.length);
// 返回团队列表
return NextResponse.json({
success: true,
teams: teams
});
};
// 执行处理函数
const wrappedHandler = connectSystemDB(handler);
return await wrappedHandler(req);
} catch (error: unknown) {
const err = error as Error;
console.error('API: 获取团队列表失败:', err);
// 其他错误
return NextResponse.json(
{
success: false,
error: '获取团队列表失败: ' + err.message
},
{ status: 500 }
);
}
}