From a7caf9fdf59f04c516a92002ed7db1901bbfc606 Mon Sep 17 00:00:00 2001 From: d0zingcat Date: Thu, 15 Jan 2026 19:55:04 +0800 Subject: [PATCH] fix: try fix lint Signed-off-by: d0zingcat --- apps/server/src/auth.ts | 5 +++ apps/server/src/feishu.ts | 3 ++ apps/web/src/views/AdminView.tsx | 20 +++++---- apps/web/src/views/TopicsView.tsx | 71 ++++++++++++++++--------------- 4 files changed, 57 insertions(+), 42 deletions(-) diff --git a/apps/server/src/auth.ts b/apps/server/src/auth.ts index 4610f9b..cfcc02a 100644 --- a/apps/server/src/auth.ts +++ b/apps/server/src/auth.ts @@ -53,6 +53,11 @@ auth.get("/callback", async (c) => { // Exchange code for user access token and user info const userData = await feishuClient.getUserAccessToken(code); + if (!userData) { + logger.error("[Auth] Failed to get user data from code"); + return c.json({ error: "Failed to get user info from Feishu" }, 500); + } + // Check if user exists, otherwise create let user = await db.query.users.findFirst({ where: eq(users.feishuUserId, userData.open_id), diff --git a/apps/server/src/feishu.ts b/apps/server/src/feishu.ts index ed7f9b5..86c8332 100644 --- a/apps/server/src/feishu.ts +++ b/apps/server/src/feishu.ts @@ -8,6 +8,9 @@ export interface UserAccessTokenData { refresh_token: string; refresh_expires_in: number; scope: string; + name: string; + open_id: string; + email?: string; } export class FeishuClient { diff --git a/apps/web/src/views/AdminView.tsx b/apps/web/src/views/AdminView.tsx index aa2bd00..1d88f26 100644 --- a/apps/web/src/views/AdminView.tsx +++ b/apps/web/src/views/AdminView.tsx @@ -35,30 +35,33 @@ export default function AdminView() { @@ -167,12 +170,13 @@ function TopicsManagement() { {topic.status} diff --git a/apps/web/src/views/TopicsView.tsx b/apps/web/src/views/TopicsView.tsx index 1d20834..e14f8df 100644 --- a/apps/web/src/views/TopicsView.tsx +++ b/apps/web/src/views/TopicsView.tsx @@ -219,20 +219,20 @@ export default function TopicsView() { const updatedSubs = isSubscribed ? t.subscriptions.filter((s) => s.userId !== userId) : [ - ...t.subscriptions, - { - userId, - user: - users.find((u) => u.id === userId) || - (currentUser - ? { - id: currentUser.id, - name: currentUser.name, - email: currentUser.email, - } - : { id: "unknown", name: "Unknown" }), - }, - ]; + ...t.subscriptions, + { + userId, + user: + users.find((u) => u.id === userId) || + (currentUser + ? { + id: currentUser.id, + name: currentUser.name, + email: currentUser.email, + } + : { id: "unknown", name: "Unknown" }), + }, + ]; return { ...t, subscriptions: updatedSubs }; } return t; @@ -244,20 +244,20 @@ export default function TopicsView() { const updatedSubs = isSubscribed ? selectedTopic.subscriptions.filter((s) => s.userId !== userId) : [ - ...selectedTopic.subscriptions, - { - userId, - user: - users.find((u) => u.id === userId) || - (currentUser - ? { - id: currentUser.id, - name: currentUser.name, - email: currentUser.email, - } - : { id: "unknown", name: "Unknown" }), - }, - ]; + ...selectedTopic.subscriptions, + { + userId, + user: + users.find((u) => u.id === userId) || + (currentUser + ? { + id: currentUser.id, + name: currentUser.name, + email: currentUser.email, + } + : { id: "unknown", name: "Unknown" }), + }, + ]; setSelectedTopic({ ...selectedTopic, subscriptions: updatedSubs }); } @@ -429,10 +429,11 @@ export default function TopicsView() {