shubhjn commited on
Commit
679d02b
·
1 Parent(s): 943ba81

fix the gemininkey issue

Browse files
Files changed (3) hide show
  1. lib/auth.ts +7 -1
  2. lib/gemini.ts +22 -0
  3. lib/validate-env.ts +0 -1
lib/auth.ts CHANGED
@@ -181,7 +181,13 @@ export const { handlers, signIn, signOut, auth } = NextAuth({
181
  session.user.id = dbUser.id;
182
  session.user.name = dbUser.name || session.user.name;
183
  session.user.image = dbUser.image || session.user.image;
184
- session.user.role = "user";
 
 
 
 
 
 
185
  session.user.accessToken = dbUser.accessToken || undefined;
186
  } else {
187
  // Only use admin fallback if NOT found in DB (unlikely for Google login)
 
181
  session.user.id = dbUser.id;
182
  session.user.name = dbUser.name || session.user.name;
183
  session.user.image = dbUser.image || session.user.image;
184
+ // START FIX: Check if this is the admin user
185
+ if (dbUser.id === "admin-user") {
186
+ session.user.role = "admin";
187
+ } else {
188
+ session.user.role = "user";
189
+ }
190
+ // END FIX
191
  session.user.accessToken = dbUser.accessToken || undefined;
192
  } else {
193
  // Only use admin fallback if NOT found in DB (unlikely for Google login)
lib/gemini.ts CHANGED
@@ -1,7 +1,29 @@
1
 
2
  import { GoogleGenerativeAI } from "@google/generative-ai";
3
  import { Node, Edge } from "reactflow";
 
 
 
 
4
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
5
 
6
  export async function generateEmailTemplate(
7
  businessType: string,
 
1
 
2
  import { GoogleGenerativeAI } from "@google/generative-ai";
3
  import { Node, Edge } from "reactflow";
4
+ import { auth } from "@/auth"; // Validate path is correct or adjust
5
+ import { db } from "@/db";
6
+ import { users } from "@/db/schema";
7
+ import { eq } from "drizzle-orm";
8
 
9
+ async function getEffectiveApiKey(providedKey?: string): Promise<string | undefined> {
10
+ if (providedKey) return providedKey;
11
+ if (process.env.GEMINI_API_KEY) return process.env.GEMINI_API_KEY;
12
+
13
+ try {
14
+ const session = await auth();
15
+ if (session?.user?.id) {
16
+ const user = await db.query.users.findFirst({
17
+ where: eq(users.id, session.user.id),
18
+ columns: { geminiApiKey: true }
19
+ });
20
+ if (user?.geminiApiKey) return user.geminiApiKey;
21
+ }
22
+ } catch (error) {
23
+ console.warn("Failed to fetch Gemini API key from DB:", error);
24
+ }
25
+ return undefined;
26
+ }
27
 
28
  export async function generateEmailTemplate(
29
  businessType: string,
lib/validate-env.ts CHANGED
@@ -6,7 +6,6 @@ export function validateEnvironmentVariables() {
6
  "NEXTAUTH_SECRET",
7
  "GOOGLE_CLIENT_ID",
8
  "GOOGLE_CLIENT_SECRET",
9
- "GEMINI_API_KEY",
10
  ];
11
 
12
  const missing = required.filter(v => !process.env[v]);
 
6
  "NEXTAUTH_SECRET",
7
  "GOOGLE_CLIENT_ID",
8
  "GOOGLE_CLIENT_SECRET",
 
9
  ];
10
 
11
  const missing = required.filter(v => !process.env[v]);