diff --git a/src/app/api/user/profile/route.ts b/src/app/api/user/profile/route.ts index 2eee6b9..a99c8bc 100644 --- a/src/app/api/user/profile/route.ts +++ b/src/app/api/user/profile/route.ts @@ -1,4 +1,4 @@ -import { prisma } from "@/module/_global"; +import { funDeleteFile, funUploadFile, prisma } from "@/module/_global"; import { funGetUserByCookies } from "@/module/auth"; import _ from "lodash"; import { NextResponse } from "next/server"; @@ -118,26 +118,35 @@ export async function PUT(request: Request) { }) if (String(file) != "undefined" && String(file) != "null") { - fs.unlink(`./public/image/user/${update.img}`, (err) => { }) - const root = path.join(process.cwd(), "./public/image/user/"); const fExt = file.name.split(".").pop() - const fileName = user.id + '.' + fExt; - const filePath = path.join(root, fileName); + // const fileName = user.id + '.' + fExt; + const fileName = 'COBAAYAA.' + fExt; + const newFile = new File([file], fileName, { type: file.type }); + console.log(fileName, newFile.name) + await funDeleteFile({ name: fileName, dirId: "cm0x8dbwn0005bp5tgmfcthzw" }) + await funUploadFile({ file: newFile, dirId: "cm0x8dbwn0005bp5tgmfcthzw" }) - // Konversi ArrayBuffer ke Buffer - const buffer = Buffer.from(await file.arrayBuffer()); - // Tulis file ke sistem - fs.writeFileSync(filePath, buffer); + // fs.unlink(`./public/image/user/${update.img}`, (err) => { }) + // const root = path.join(process.cwd(), "./public/image/user/"); + // const fExt = file.name.split(".").pop() + // const fileName = user.id + '.' + fExt; + // const filePath = path.join(root, fileName); - await prisma.user.update({ - where: { - id: user.id - }, - data: { - img: fileName - } - }) + // // Konversi ArrayBuffer ke Buffer + // const buffer = Buffer.from(await file.arrayBuffer()); + + // // Tulis file ke sistem + // fs.writeFileSync(filePath, buffer); + + // await prisma.user.update({ + // where: { + // id: user.id + // }, + // data: { + // img: fileName + // } + // }) } const log = await createLogUser({ act: 'UPDATE', desc: 'User mengupdate data profile', table: 'user', data: user.id }) diff --git a/src/app/api/user/route.ts b/src/app/api/user/route.ts index 95fc943..fa7b506 100644 --- a/src/app/api/user/route.ts +++ b/src/app/api/user/route.ts @@ -1,4 +1,4 @@ -import { prisma } from "@/module/_global"; +import { funUploadFile, prisma } from "@/module/_global"; import { funGetUserByCookies } from "@/module/auth"; import { createLogUser } from "@/module/user"; import _ from "lodash"; @@ -137,25 +137,31 @@ export async function POST(request: Request) { }); if (String(file) != "undefined" && String(file) != "null") { - const root = path.join(process.cwd(), "./public/image/user/"); + const fExt = file.name.split(".").pop() - const fileName = users.id + '.' + fExt; - const filePath = path.join(root, fileName); + const fileName = user.id + '.' + fExt; + const newFile = new File([file], fileName, { type: file.type }); + await funUploadFile({ file: newFile, dirId: "cm0x8dbwn0005bp5tgmfcthzw" }) - // Konversi ArrayBuffer ke Buffer - const buffer = Buffer.from(await file.arrayBuffer()); + // const root = path.join(process.cwd(), "./public/image/user/"); + // const fExt = file.name.split(".").pop() + // const fileName = users.id + '.' + fExt; + // const filePath = path.join(root, fileName); - // Tulis file ke sistem - fs.writeFileSync(filePath, buffer); + // // Konversi ArrayBuffer ke Buffer + // const buffer = Buffer.from(await file.arrayBuffer()); - await prisma.user.update({ - where: { - id: users.id - }, - data: { - img: fileName - } - }) + // // Tulis file ke sistem + // fs.writeFileSync(filePath, buffer); + + // await prisma.user.update({ + // where: { + // id: users.id + // }, + // data: { + // img: fileName + // } + // }) } // create log user diff --git a/src/module/_global/fun/delete_file.ts b/src/module/_global/fun/delete_file.ts new file mode 100644 index 0000000..881c662 --- /dev/null +++ b/src/module/_global/fun/delete_file.ts @@ -0,0 +1,22 @@ +export async function funDeleteFile({ name, dirId }: { name: String, dirId: string }) { + try { + const res = await fetch(`https://wibu-storage.wibudev.com/api/dir/${dirId}/${name}`, { + method: "GET", + headers: { + Authorization: `Bearer eyJhbGciOiJIUzI1NiJ9.eyJ1c2VyIjp7ImlkIjoiY20wdnQ4bzFrMDAwMDEyenE1eXl1emd5YiIsIm5hbWUiOiJhbWFsaWEiLCJlbWFpbCI6ImFtYWxpYUBiaXAuY29tIiwiQXBpS2V5IjpbeyJpZCI6ImNtMHZ0OG8xcjAwMDIxMnpxZDVzejd3eTgiLCJuYW1lIjoiZGVmYXVsdCJ9XX0sImlhdCI6MTcyNTkzNTE5MiwiZXhwIjo0ODgxNjk1MTkyfQ.7U-HUnNBDmeq_6XXohiFZjFnh2rSzUPMHDdrUKOd7G4` + } + }); + + if (res.ok) { + console.log("Berhasil dapat"); + const hasil = await res.json() + console.log('berhasilAmalia', hasil) + + } else { + const errorText = await res.json(); + console.log('errorAmalia', errorText) + } + } catch (error) { + console.error("Upload error:", error); + } +} \ No newline at end of file diff --git a/src/module/user/profile/lib/upload_img_profile.ts b/src/module/_global/fun/upload_file.ts similarity index 59% rename from src/module/user/profile/lib/upload_img_profile.ts rename to src/module/_global/fun/upload_file.ts index a49ab70..46b3045 100644 --- a/src/module/user/profile/lib/upload_img_profile.ts +++ b/src/module/_global/fun/upload_file.ts @@ -1,7 +1,7 @@ -export async function fileUpload({ file }: { file: File}) { +export async function funUploadFile({ file, dirId }: { file: File, dirId: string }) { const formData = new FormData(); formData.append("file", file); - formData.append("dirId", "cm0x8dbwn0005bp5tgmfcthzw"); + formData.append("dirId", dirId); try { const res = await fetch("https://wibu-storage.wibudev.com/api/upload", { @@ -13,13 +13,10 @@ export async function fileUpload({ file }: { file: File}) { }); if (res.ok) { - console.log("File uploaded successfullyAmalia"); - const hasil = await res.text() - console.log('berhasilAmalia',hasil) - + console.log("File uploaded successfully"); } else { const errorText = await res.text(); - console.log('errorAmalia',errorText) + console.log('errorAmalia', errorText) } } catch (error) { console.error("Upload error:", error); diff --git a/src/module/_global/index.ts b/src/module/_global/index.ts index fc422a0..daf18c3 100644 --- a/src/module/_global/index.ts +++ b/src/module/_global/index.ts @@ -6,6 +6,8 @@ import SkeletonDetailListTugasTask from "./components/skeleton_detail_list_tugas import SkeletonDetailProfile from "./components/skeleton_detail_profile"; import SkeletonSingle from "./components/skeleton_single"; import WrapLayout from "./components/wrap_layout"; +import { funDeleteFile } from "./fun/delete_file"; +import { funUploadFile } from "./fun/upload_file"; import { WARNA } from "./fun/WARNA"; import LayoutDrawer from "./layout/layout_drawer"; import LayoutIconBack from "./layout/layout_icon_back"; @@ -36,3 +38,5 @@ export { LayoutModalViewFile } export { globalRole } export { WrapLayout } export { NoZoom } +export { funUploadFile } +export { funDeleteFile } diff --git a/src/module/user/index.ts b/src/module/user/index.ts index 3781d28..72ade9a 100644 --- a/src/module/user/index.ts +++ b/src/module/user/index.ts @@ -3,11 +3,9 @@ import createLogUser from "./log/fun/createLogUser"; import { funGetAllmember } from './member/lib/api_member'; import Profile from './profile/ui/profile'; import EditProfile from './profile/ui/edit_profile'; -import { fileUpload } from './profile/lib/upload_img_profile'; export { createLogUser }; export type { TypeUser } export { funGetAllmember } export { Profile } -export { EditProfile } -export { fileUpload } +export { EditProfile } \ No newline at end of file diff --git a/src/module/user/profile/ui/profile.tsx b/src/module/user/profile/ui/profile.tsx index 5c0e85f..25cfcac 100644 --- a/src/module/user/profile/ui/profile.tsx +++ b/src/module/user/profile/ui/profile.tsx @@ -28,6 +28,7 @@ export default function Profile() { const res = await funGetProfileByCookies() setData(res.data) setIMG(`/api/file/img?jenis=image&cat=user&file=${res.data.img}`) + // setIMG(`https://wibu-storage.wibudev.com/api/files/view/cm0x8dbwn0005bp5tgmfcthzw/${res.data.img}`) setLoading(false) } catch (error) { console.error(error);