Fix upload
Deksripsi: - Fix upload foto - Fix email regex
This commit is contained in:
@@ -12,47 +12,34 @@ export async function POST(req: Request) {
|
||||
},
|
||||
});
|
||||
|
||||
if (cekUsername)
|
||||
try {
|
||||
if (cekUsername)
|
||||
return NextResponse.json(
|
||||
{ success: false, message: "Username sudah digunakan" },
|
||||
{ status: 400 }
|
||||
);
|
||||
|
||||
const createUser = await prisma.user.create({
|
||||
data: {
|
||||
username: data.username,
|
||||
nomor: data.nomor,
|
||||
active: true,
|
||||
},
|
||||
});
|
||||
|
||||
const token = await sessionCreate({
|
||||
sessionKey: process.env.NEXT_PUBLIC_BASE_SESSION_KEY!,
|
||||
encodedKey: process.env.NEXT_PUBLIC_BASE_TOKEN_KEY!,
|
||||
user: createUser as any,
|
||||
});
|
||||
|
||||
return NextResponse.json(
|
||||
{ success: false, message: "Username sudah digunakan" },
|
||||
{ status: 400 }
|
||||
{ success: true, message: "Berhasil Login", data: createUser },
|
||||
{ status: 200 }
|
||||
);
|
||||
|
||||
const createUser = await prisma.user.create({
|
||||
data: {
|
||||
username: data.username,
|
||||
nomor: data.nomor,
|
||||
active: true,
|
||||
},
|
||||
});
|
||||
|
||||
const token = await sessionCreate({
|
||||
sessionKey: process.env.NEXT_PUBLIC_BASE_SESSION_KEY!,
|
||||
encodedKey: process.env.NEXT_PUBLIC_BASE_TOKEN_KEY!,
|
||||
user: createUser as any,
|
||||
});
|
||||
|
||||
// try {
|
||||
// const createUserSession = await prisma.userSession.create({
|
||||
// data: {
|
||||
// token: token as string,
|
||||
// userId: createUser.id,
|
||||
// },
|
||||
// });
|
||||
|
||||
// if (!createUserSession)
|
||||
// return NextResponse.json(
|
||||
// { success: false, message: "Gagal Membuat Session" },
|
||||
// { status: 400 }
|
||||
// );
|
||||
// } catch (error) {
|
||||
// console.log(error);
|
||||
// }
|
||||
|
||||
return NextResponse.json(
|
||||
{ success: true, message: "Berhasil Login", data: createUser },
|
||||
{ status: 200 }
|
||||
);
|
||||
} catch (error) {
|
||||
console.log(error);
|
||||
}
|
||||
}
|
||||
|
||||
return NextResponse.json(
|
||||
|
||||
@@ -20,7 +20,7 @@ export async function POST(req: Request) {
|
||||
},
|
||||
});
|
||||
|
||||
if (dataUser === null)
|
||||
if (dataUser == null)
|
||||
return NextResponse.json(
|
||||
{ success: false, message: "Nomor Belum Terdaftar" },
|
||||
{ status: 404 }
|
||||
@@ -32,37 +32,6 @@ export async function POST(req: Request) {
|
||||
user: dataUser as any,
|
||||
});
|
||||
|
||||
// const cekSessionUser = await prisma.userSession.findFirst({
|
||||
// where: {
|
||||
// userId: dataUser.id,
|
||||
// },
|
||||
// });
|
||||
|
||||
// if (cekSessionUser !== null) {
|
||||
// await prisma.userSession.delete({
|
||||
// where: {
|
||||
// userId: dataUser.id,
|
||||
// },
|
||||
// });
|
||||
// }
|
||||
|
||||
// try {
|
||||
// const createUserSession = await prisma.userSession.create({
|
||||
// data: {
|
||||
// token: token as string,
|
||||
// userId: dataUser.id,
|
||||
// },
|
||||
// });
|
||||
|
||||
// if (!createUserSession)
|
||||
// return NextResponse.json(
|
||||
// { success: false, message: "Gagal Membuat Session" },
|
||||
// { status: 400 }
|
||||
// );
|
||||
// } catch (error) {
|
||||
// console.log(error);
|
||||
// }
|
||||
|
||||
return NextResponse.json(
|
||||
{
|
||||
success: true,
|
||||
|
||||
51
src/app/api/upload/route.ts
Normal file
51
src/app/api/upload/route.ts
Normal file
@@ -0,0 +1,51 @@
|
||||
import { NextResponse } from "next/server";
|
||||
export async function POST(request: Request) {
|
||||
const WS_APIKEY = process.env.WS_APIKEY;
|
||||
console.log(WS_APIKEY);
|
||||
|
||||
try {
|
||||
const formData = await request.formData();
|
||||
|
||||
const res = await fetch("https://wibu-storage.wibudev.com/api/upload", {
|
||||
method: "POST",
|
||||
body: formData,
|
||||
headers: {
|
||||
Authorization: `Bearer ${process.env.WS_APIKEY}`,
|
||||
},
|
||||
});
|
||||
|
||||
// if (res.ok) {
|
||||
// console.log("Berhasil");
|
||||
// const hasil = await res.json();
|
||||
// return { success: true, data: hasil.data };
|
||||
// } else {
|
||||
// const errorText = await res.text();
|
||||
// return { success: false, data: {} };
|
||||
// }
|
||||
} catch (error) {
|
||||
console.log(error);
|
||||
}
|
||||
|
||||
// try {
|
||||
// const res = await fetch("https://wibu-storage.wibudev.com/api/upload", {
|
||||
// method: "POST",
|
||||
// body: formData,
|
||||
// headers: {
|
||||
// Authorization: `Bearer ${process.env.WS_APIKEY}`,
|
||||
// },
|
||||
// });
|
||||
|
||||
// if (res.ok) {
|
||||
// const hasil = await res.json();
|
||||
// return { success: true, data: hasil.data };
|
||||
// } else {
|
||||
// const errorText = await res.text();
|
||||
// return { success: false, data: {} };
|
||||
// }
|
||||
// } catch (error) {
|
||||
// console.error("Upload error:", error);
|
||||
// return { success: false, data: {} };
|
||||
// }
|
||||
|
||||
return NextResponse.json({ success: true });
|
||||
}
|
||||
@@ -1,18 +1,111 @@
|
||||
"use client";
|
||||
|
||||
import { MainColor } from "@/app_modules/_global/color";
|
||||
import { funGetUserIdByToken } from "@/app_modules/_global/fun/get";
|
||||
import Coba_TestLoading from "@/app_modules/zCoba";
|
||||
import {
|
||||
Avatar,
|
||||
Button,
|
||||
Center,
|
||||
FileButton,
|
||||
Paper,
|
||||
Stack,
|
||||
} from "@mantine/core";
|
||||
import { IconCamera } from "@tabler/icons-react";
|
||||
import { useState } from "react";
|
||||
import { DIRECTORY_ID } from "../lib";
|
||||
import { TokenStorage } from "../lib/token";
|
||||
import { envs } from "@/lib/envs";
|
||||
|
||||
export default async function Page() {
|
||||
await new Promise((a, b) => {
|
||||
setTimeout(a, 3000);
|
||||
});
|
||||
export default function Page() {
|
||||
const [filePP, setFilePP] = useState<File | null>(null);
|
||||
const [imgPP, setImgPP] = useState<any | null>();
|
||||
|
||||
const userLoginId = await funGetUserIdByToken();
|
||||
async function onSave() {
|
||||
const body = {
|
||||
file: filePP,
|
||||
dirId: DIRECTORY_ID.profile_foto,
|
||||
};
|
||||
|
||||
const token =
|
||||
"QWERTYUIOPLKJHGFDSAZXCVBNMQAZWSXEDCRFVTGBYHNUJMIKOLPPOIUYTREWQLKJHGFDSAMNBVCXZlghvftyguhijknhbgvcfytguu8okjnhbgvfty7u8oilkjnhgvtygu7u8ojilnkhbgvhujnkhghvjhukjnhb";
|
||||
|
||||
const formData = new FormData();
|
||||
formData.append("file", filePP as any);
|
||||
|
||||
const res = await fetch("/api/upload", {
|
||||
method: "POST",
|
||||
body: formData,
|
||||
});
|
||||
|
||||
console.log(await res.json());
|
||||
}
|
||||
|
||||
return (
|
||||
<>
|
||||
{/* <CobaRealtime userLoginId={userLoginId} /> */}
|
||||
<Coba_TestLoading userLoginId={userLoginId as string} />
|
||||
{/* <ComponentGlobal_UI_LayoutTamplate /> */}
|
||||
<Stack>
|
||||
<Center>
|
||||
{imgPP ? (
|
||||
<Paper shadow="lg" radius={"100%"}>
|
||||
<Avatar
|
||||
color={"cyan"}
|
||||
sx={{
|
||||
borderStyle: "solid",
|
||||
borderColor: "gray",
|
||||
borderWidth: "0.5px",
|
||||
}}
|
||||
src={imgPP ? imgPP : "/aset/global/avatar.png"}
|
||||
size={150}
|
||||
radius={"100%"}
|
||||
/>
|
||||
</Paper>
|
||||
) : (
|
||||
<Paper shadow="lg" radius={"100%"}>
|
||||
<Avatar
|
||||
variant="light"
|
||||
color="blue"
|
||||
size={150}
|
||||
radius={"100%"}
|
||||
sx={{
|
||||
borderStyle: "solid",
|
||||
borderColor: MainColor.darkblue,
|
||||
borderWidth: "0.5px",
|
||||
}}
|
||||
/>
|
||||
</Paper>
|
||||
)}
|
||||
</Center>
|
||||
|
||||
<FileButton
|
||||
onChange={async (files: any | null) => {
|
||||
try {
|
||||
const buffer = URL.createObjectURL(
|
||||
new Blob([new Uint8Array(await files.arrayBuffer())])
|
||||
);
|
||||
setImgPP(buffer);
|
||||
setFilePP(files);
|
||||
} catch (error) {
|
||||
console.log(error);
|
||||
}
|
||||
}}
|
||||
accept="image/png,image/jpeg"
|
||||
>
|
||||
{(props) => (
|
||||
<Button
|
||||
{...props}
|
||||
radius={"xl"}
|
||||
leftIcon={<IconCamera />}
|
||||
bg={MainColor.yellow}
|
||||
color="yellow"
|
||||
c={"black"}
|
||||
>
|
||||
Upload
|
||||
</Button>
|
||||
)}
|
||||
</FileButton>
|
||||
|
||||
<Button onClick={() => onSave()}>Upload</Button>
|
||||
</Stack>
|
||||
</>
|
||||
);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user