Adding image link now works for pfp
This commit is contained in:
parent
40130b65e5
commit
2989cdd421
27
src/app/api/users/set_users_pfp_by_email/route.ts
Normal file
27
src/app/api/users/set_users_pfp_by_email/route.ts
Normal file
@ -0,0 +1,27 @@
|
||||
"use server"
|
||||
import { NextResponse } from "next/server"
|
||||
import type { NextRequest } from "next/server"
|
||||
import { set_users_pfp_by_email } from "~/server/functions"
|
||||
import { auth } from "~/auth"
|
||||
|
||||
type updateNameData = {
|
||||
users_pfp: string;
|
||||
users_email: string;
|
||||
};
|
||||
|
||||
export const POST = async (req: NextRequest) => {
|
||||
const session = await auth();
|
||||
if (!session) return NextResponse.json(
|
||||
{ error: "Not authenticated" },
|
||||
{ status: 401 }
|
||||
);
|
||||
const { users_pfp, users_email } = await req.json() as updateNameData;
|
||||
console.log('API received users_pfp:', users_pfp, 'users_id:', users_email); // Log received data
|
||||
try {
|
||||
await set_users_pfp_by_email(users_pfp, users_email);
|
||||
return NextResponse.json({ message: "Username updated successfully", users_pfp }, { status: 200 });
|
||||
} catch (error) {
|
||||
console.error('Error in API route:', error);
|
||||
return NextResponse.json({ error: "Error updating username" }, { status: 500 });
|
||||
}
|
||||
};
|
@ -17,8 +17,8 @@ import Sign_Out_Button from "~/components/auth/server/SignOutButton"
|
||||
|
||||
export default async function Avatar_Popover() {
|
||||
const session = await auth();
|
||||
const pfp = session?.user?.image ?? "https://github.com/shadcn.png";
|
||||
const users_name = session?.user?.name ?? "shadcn";
|
||||
const pfp = session?.user?.image ?? "";
|
||||
const users_name = session?.user?.name ?? "New User";
|
||||
const initials = users_name.split(" ").map((name) => name[0]).join("");
|
||||
console.log(pfp);
|
||||
return (
|
||||
|
@ -36,7 +36,7 @@ export default function First_Sign_In_Form({ users_name, users_email }: { users_
|
||||
|
||||
const update_users_name = async (users_name: string, users_email: string) => {
|
||||
try {
|
||||
const res = await fetch("/api/users/set_username_by_email", {
|
||||
const res = await fetch("/api/users/set_users_name_by_email", {
|
||||
method: "POST",
|
||||
headers: {
|
||||
"Content-Type": "application/json",
|
||||
@ -54,9 +54,32 @@ export default function First_Sign_In_Form({ users_name, users_email }: { users_
|
||||
}
|
||||
};
|
||||
|
||||
const update_users_pfp = async (users_pfp: string, users_email: string) => {
|
||||
try {
|
||||
const res = await fetch("/api/users/set_users_pfp_by_email", {
|
||||
method: "POST",
|
||||
headers: {
|
||||
"Content-Type": "application/json",
|
||||
},
|
||||
body: JSON.stringify({
|
||||
users_pfp: users_pfp,
|
||||
users_email: users_email,
|
||||
}),
|
||||
});
|
||||
if (!res.ok) {
|
||||
throw new Error("Failed to update user's name");
|
||||
}
|
||||
} catch (error) {
|
||||
console.error("Could not update user's name", error);
|
||||
}
|
||||
};
|
||||
|
||||
const onSubmit = async (data: z.infer<typeof formSchema>) => {
|
||||
if (data.users_profile_image === undefined) {
|
||||
data.users_profile_image = "";
|
||||
}
|
||||
await update_users_name(data.users_name, users_email);
|
||||
await update_users_pfp(data.users_profile_image, users_email);
|
||||
setIsOpen(false);
|
||||
};
|
||||
|
||||
|
@ -6,7 +6,6 @@ import { eq } from "drizzle-orm"
|
||||
|
||||
export const set_users_name_by_email = async (users_name: string, users_email: string) => {
|
||||
try {
|
||||
console.log('Updating user:', users_email, 'with name:', users_name); // Log input
|
||||
await db.update(schema.users)
|
||||
.set({ name: users_name })
|
||||
.where(eq(schema.users.email, users_email))
|
||||
@ -16,10 +15,29 @@ export const set_users_name_by_email = async (users_name: string, users_email: s
|
||||
}
|
||||
};
|
||||
|
||||
export const get_users_name_by_id = async (users_id: string) => {
|
||||
export const get_users_name_by_email = async (users_email: string) => {
|
||||
const result = await db.select({
|
||||
users_name: schema.users.name,
|
||||
}).from(schema.users)
|
||||
.where(eq(schema.users.id, users_id))
|
||||
.where(eq(schema.users.email, users_email))
|
||||
return result;
|
||||
}
|
||||
|
||||
export const set_users_pfp_by_email = async (users_pfp: string, users_email: string) => {
|
||||
try {
|
||||
await db.update(schema.users)
|
||||
.set({ image: users_pfp })
|
||||
.where(eq(schema.users.email, users_email))
|
||||
} catch (error) {
|
||||
console.error('Error updating user pfp:', error);
|
||||
throw error;
|
||||
}
|
||||
};
|
||||
|
||||
export const get_users_pfp_by_email = async (users_email: string) => {
|
||||
const result = await db.select({
|
||||
users_pfp: schema.users.image,
|
||||
}).from(schema.users)
|
||||
.where(eq(schema.users.email, users_email))
|
||||
return result;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user