From 091c33a73c96f3efd8b024638146a563eafcd0d5 Mon Sep 17 00:00:00 2001 From: nico Date: Thu, 27 Nov 2025 18:13:29 +0800 Subject: [PATCH] Test Hapus Auth --- .../admin/(dashboard)/auth/login-admin/page.tsx | 3 ++- .../(dashboard)/auth/registrasi-admin/page.tsx | 2 +- .../admin/(dashboard)/auth/validasi-admin/page.tsx | 14 +++++++------- src/app/admin/layout.tsx | 4 ++-- .../api/{auth => [auth]}/_lib/api_fetch_auth.ts | 14 +++++++------- src/app/api/{auth => [auth]}/_lib/decrypt.ts | 0 src/app/api/{auth => [auth]}/_lib/encrypt.ts | 0 .../api/{auth => [auth]}/_lib/get_KodeOtp_By_Id.ts | 0 src/app/api/{auth => [auth]}/_lib/randomOTP.ts | 0 .../api/{auth => [auth]}/_lib/session_create.ts | 0 .../api/{auth => [auth]}/_lib/session_delete.ts | 0 .../api/{auth => [auth]}/_lib/session_verify.ts | 0 src/app/api/{auth => [auth]}/clear-flow/route.ts | 0 .../finalize-registration/route.ts | 0 src/app/api/{auth => [auth]}/get-flow/route.ts | 0 src/app/api/{auth => [auth]}/login/route.ts | 0 src/app/api/{auth => [auth]}/logout/route.ts | 0 src/app/api/{auth => [auth]}/me/route.ts | 2 +- src/app/api/{auth => [auth]}/otp-data/route.ts | 0 .../api/{auth => [auth]}/refresh-session/route.ts | 0 src/app/api/{auth => [auth]}/register/route.ts | 0 src/app/api/{auth => [auth]}/resend/route.ts | 0 .../{auth => [auth]}/send-otp-register/route.ts | 0 src/app/api/{auth => [auth]}/set-flow/route.ts | 0 src/app/api/{auth => [auth]}/validasi/route.ts | 0 .../api/{auth => [auth]}/verify-otp-login/route.ts | 0 .../{auth => [auth]}/verify-otp-register/route.ts | 0 src/app/waiting-room/page.tsx | 4 ++-- 28 files changed, 22 insertions(+), 21 deletions(-) rename src/app/api/{auth => [auth]}/_lib/api_fetch_auth.ts (90%) rename src/app/api/{auth => [auth]}/_lib/decrypt.ts (100%) rename src/app/api/{auth => [auth]}/_lib/encrypt.ts (100%) rename src/app/api/{auth => [auth]}/_lib/get_KodeOtp_By_Id.ts (100%) rename src/app/api/{auth => [auth]}/_lib/randomOTP.ts (100%) rename src/app/api/{auth => [auth]}/_lib/session_create.ts (100%) rename src/app/api/{auth => [auth]}/_lib/session_delete.ts (100%) rename src/app/api/{auth => [auth]}/_lib/session_verify.ts (100%) rename src/app/api/{auth => [auth]}/clear-flow/route.ts (100%) rename src/app/api/{auth => [auth]}/finalize-registration/route.ts (100%) rename src/app/api/{auth => [auth]}/get-flow/route.ts (100%) rename src/app/api/{auth => [auth]}/login/route.ts (100%) rename src/app/api/{auth => [auth]}/logout/route.ts (100%) rename src/app/api/{auth => [auth]}/me/route.ts (96%) rename src/app/api/{auth => [auth]}/otp-data/route.ts (100%) rename src/app/api/{auth => [auth]}/refresh-session/route.ts (100%) rename src/app/api/{auth => [auth]}/register/route.ts (100%) rename src/app/api/{auth => [auth]}/resend/route.ts (100%) rename src/app/api/{auth => [auth]}/send-otp-register/route.ts (100%) rename src/app/api/{auth => [auth]}/set-flow/route.ts (100%) rename src/app/api/{auth => [auth]}/validasi/route.ts (100%) rename src/app/api/{auth => [auth]}/verify-otp-login/route.ts (100%) rename src/app/api/{auth => [auth]}/verify-otp-register/route.ts (100%) diff --git a/src/app/admin/(dashboard)/auth/login-admin/page.tsx b/src/app/admin/(dashboard)/auth/login-admin/page.tsx index 3457cf45..bb807878 100644 --- a/src/app/admin/(dashboard)/auth/login-admin/page.tsx +++ b/src/app/admin/(dashboard)/auth/login-admin/page.tsx @@ -1,5 +1,6 @@ 'use client'; -import { apiFetchLogin } from '@/app/api/auth/_lib/api_fetch_auth'; + +import { apiFetchLogin } from '@/app/api/[auth]/_lib/api_fetch_auth'; import colors from '@/con/colors'; import { Box, Button, Center, Image, Paper, Stack, Title } from '@mantine/core'; import { useRouter } from 'next/navigation'; diff --git a/src/app/admin/(dashboard)/auth/registrasi-admin/page.tsx b/src/app/admin/(dashboard)/auth/registrasi-admin/page.tsx index 537ae814..c3fd47b1 100644 --- a/src/app/admin/(dashboard)/auth/registrasi-admin/page.tsx +++ b/src/app/admin/(dashboard)/auth/registrasi-admin/page.tsx @@ -1,7 +1,7 @@ // app/registrasi/page.tsx 'use client'; -import { apiFetchRegister } from '@/app/api/auth/_lib/api_fetch_auth'; +import { apiFetchRegister } from '@/app/api/[auth]/_lib/api_fetch_auth'; import BackButton from '@/app/darmasaba/(pages)/desa/layanan/_com/BackButto'; import colors from '@/con/colors'; import { diff --git a/src/app/admin/(dashboard)/auth/validasi-admin/page.tsx b/src/app/admin/(dashboard)/auth/validasi-admin/page.tsx index 5307bf87..fb84ea10 100644 --- a/src/app/admin/(dashboard)/auth/validasi-admin/page.tsx +++ b/src/app/admin/(dashboard)/auth/validasi-admin/page.tsx @@ -31,7 +31,7 @@ export default function Validasi() { useEffect(() => { const checkFlow = async () => { try { - const res = await fetch('/api/auth/get-flow', { + const res = await fetch('/api/get-flow', { credentials: 'include' }); const data = await res.json(); @@ -60,7 +60,7 @@ export default function Validasi() { setKodeId(storedKodeId); const loadOtpData = async () => { try { - const res = await fetch(`/api/auth/otp-data?kodeId=${encodeURIComponent(storedKodeId)}`); + const res = await fetch(`/api/otp-data?kodeId=${encodeURIComponent(storedKodeId)}`); const result = await res.json(); if (res.ok && result.data?.nomor) { @@ -110,7 +110,7 @@ export default function Validasi() { return; } - const verifyRes = await fetch('/api/auth/verify-otp-register', { + const verifyRes = await fetch('/api/verify-otp-register', { method: 'POST', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify({ nomor: cleanNomor, otp, kodeId }), @@ -123,7 +123,7 @@ export default function Validasi() { return; } - const finalizeRes = await fetch('/api/auth/finalize-registration', { + const finalizeRes = await fetch('/api/finalize-registration', { method: 'POST', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify({ nomor, username, kodeId }), @@ -142,7 +142,7 @@ export default function Validasi() { }; const handleLoginVerification = async () => { - const loginRes = await fetch('/api/auth/verify-otp-login', { + const loginRes = await fetch('/api/verify-otp-login', { method: 'POST', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify({ nomor, otp, kodeId }), @@ -200,7 +200,7 @@ export default function Validasi() { // Clear cookie try { - await fetch('/api/auth/clear-flow', { + await fetch('/api/clear-flow', { method: 'POST', credentials: 'include' }); @@ -212,7 +212,7 @@ export default function Validasi() { const handleResend = async () => { if (!nomor) return; try { - const res = await fetch('/api/auth/resend', { + const res = await fetch('/api/resend', { method: 'POST', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify({ nomor }), diff --git a/src/app/admin/layout.tsx b/src/app/admin/layout.tsx index 9dc3b944..390f43e7 100644 --- a/src/app/admin/layout.tsx +++ b/src/app/admin/layout.tsx @@ -49,7 +49,7 @@ export default function Layout({ children }: { children: React.ReactNode }) { useEffect(() => { const fetchUser = async () => { try { - const res = await fetch('/api/auth/me'); + const res = await fetch('/api/me'); const data = await res.json(); if (data.user) { @@ -114,7 +114,7 @@ export default function Layout({ children }: { children: React.ReactNode }) { setIsLoggingOut(true); // ✅ Panggil API logout untuk clear session di server - const response = await fetch('/api/auth/logout', { method: 'POST' }); + const response = await fetch('/api/logout', { method: 'POST' }); const result = await response.json(); if (result.success) { diff --git a/src/app/api/auth/_lib/api_fetch_auth.ts b/src/app/api/[auth]/_lib/api_fetch_auth.ts similarity index 90% rename from src/app/api/auth/_lib/api_fetch_auth.ts rename to src/app/api/[auth]/_lib/api_fetch_auth.ts index e57486e4..44c4fddb 100644 --- a/src/app/api/auth/_lib/api_fetch_auth.ts +++ b/src/app/api/[auth]/_lib/api_fetch_auth.ts @@ -1,7 +1,7 @@ /* eslint-disable @typescript-eslint/no-unused-vars */ -// app/api/auth/_lib/api_fetch_auth.ts +// app/api/_lib/api_fetch_auth.ts -// app/api/auth/_lib/api_fetch_auth.ts +// app/api/_lib/api_fetch_auth.ts export const apiFetchLogin = async ({ nomor }: { nomor: string }) => { if (!nomor || nomor.replace(/\D/g, '').length < 10) { @@ -10,7 +10,7 @@ export const apiFetchLogin = async ({ nomor }: { nomor: string }) => { const cleanPhone = nomor.replace(/\D/g, ''); - const response = await fetch("/api/auth/login", { + const response = await fetch("/api/login", { method: "POST", headers: { "Content-Type": "application/json" }, body: JSON.stringify({ nomor: cleanPhone }), @@ -22,7 +22,7 @@ export const apiFetchLogin = async ({ nomor }: { nomor: string }) => { try { data = await response.json(); } catch (e) { - console.error("Non-JSON response from /api/auth/login:", await response.text()); + console.error("Non-JSON response from /api/login:", await response.text()); throw new Error('Respons server tidak valid'); } @@ -55,7 +55,7 @@ export const apiFetchRegister = async ({ const cleanPhone = nomor.replace(/\D/g, ''); if (cleanPhone.length < 10) throw new Error('Nomor tidak valid'); - const response = await fetch("/api/auth/register", { + const response = await fetch("/api/register", { method: "POST", headers: { "Content-Type": "application/json" }, body: JSON.stringify({ username: username.trim(), nomor: cleanPhone }), @@ -73,7 +73,7 @@ export const apiFetchOtpData = async ({ kodeId }: { kodeId: string }) => { throw new Error('Kode ID tidak valid'); } - const response = await fetch("/api/auth/otp-data", { + const response = await fetch("/api/otp-data", { method: "POST", headers: { "Content-Type": "application/json" }, body: JSON.stringify({ kodeId }), @@ -90,7 +90,7 @@ export const apiFetchOtpData = async ({ kodeId }: { kodeId: string }) => { // Ganti endpoint ke verify-otp-login export const apiFetchVerifyOtp = async ({ nomor, otp, kodeId }: { nomor: string; otp: string; kodeId: string }) => { - const response = await fetch('/api/auth/verify-otp-login', { + const response = await fetch('/api/verify-otp-login', { method: 'POST', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify({ nomor, otp, kodeId }), diff --git a/src/app/api/auth/_lib/decrypt.ts b/src/app/api/[auth]/_lib/decrypt.ts similarity index 100% rename from src/app/api/auth/_lib/decrypt.ts rename to src/app/api/[auth]/_lib/decrypt.ts diff --git a/src/app/api/auth/_lib/encrypt.ts b/src/app/api/[auth]/_lib/encrypt.ts similarity index 100% rename from src/app/api/auth/_lib/encrypt.ts rename to src/app/api/[auth]/_lib/encrypt.ts diff --git a/src/app/api/auth/_lib/get_KodeOtp_By_Id.ts b/src/app/api/[auth]/_lib/get_KodeOtp_By_Id.ts similarity index 100% rename from src/app/api/auth/_lib/get_KodeOtp_By_Id.ts rename to src/app/api/[auth]/_lib/get_KodeOtp_By_Id.ts diff --git a/src/app/api/auth/_lib/randomOTP.ts b/src/app/api/[auth]/_lib/randomOTP.ts similarity index 100% rename from src/app/api/auth/_lib/randomOTP.ts rename to src/app/api/[auth]/_lib/randomOTP.ts diff --git a/src/app/api/auth/_lib/session_create.ts b/src/app/api/[auth]/_lib/session_create.ts similarity index 100% rename from src/app/api/auth/_lib/session_create.ts rename to src/app/api/[auth]/_lib/session_create.ts diff --git a/src/app/api/auth/_lib/session_delete.ts b/src/app/api/[auth]/_lib/session_delete.ts similarity index 100% rename from src/app/api/auth/_lib/session_delete.ts rename to src/app/api/[auth]/_lib/session_delete.ts diff --git a/src/app/api/auth/_lib/session_verify.ts b/src/app/api/[auth]/_lib/session_verify.ts similarity index 100% rename from src/app/api/auth/_lib/session_verify.ts rename to src/app/api/[auth]/_lib/session_verify.ts diff --git a/src/app/api/auth/clear-flow/route.ts b/src/app/api/[auth]/clear-flow/route.ts similarity index 100% rename from src/app/api/auth/clear-flow/route.ts rename to src/app/api/[auth]/clear-flow/route.ts diff --git a/src/app/api/auth/finalize-registration/route.ts b/src/app/api/[auth]/finalize-registration/route.ts similarity index 100% rename from src/app/api/auth/finalize-registration/route.ts rename to src/app/api/[auth]/finalize-registration/route.ts diff --git a/src/app/api/auth/get-flow/route.ts b/src/app/api/[auth]/get-flow/route.ts similarity index 100% rename from src/app/api/auth/get-flow/route.ts rename to src/app/api/[auth]/get-flow/route.ts diff --git a/src/app/api/auth/login/route.ts b/src/app/api/[auth]/login/route.ts similarity index 100% rename from src/app/api/auth/login/route.ts rename to src/app/api/[auth]/login/route.ts diff --git a/src/app/api/auth/logout/route.ts b/src/app/api/[auth]/logout/route.ts similarity index 100% rename from src/app/api/auth/logout/route.ts rename to src/app/api/[auth]/logout/route.ts diff --git a/src/app/api/auth/me/route.ts b/src/app/api/[auth]/me/route.ts similarity index 96% rename from src/app/api/auth/me/route.ts rename to src/app/api/[auth]/me/route.ts index 18165deb..d497926b 100644 --- a/src/app/api/auth/me/route.ts +++ b/src/app/api/[auth]/me/route.ts @@ -50,7 +50,7 @@ export async function GET() { }, }); } catch (error) { - console.error("❌ Error in /api/auth/me:", error); + console.error("❌ Error in /api/me:", error); return NextResponse.json( { success: false, message: "Internal server error", user: null }, { status: 500 } diff --git a/src/app/api/auth/otp-data/route.ts b/src/app/api/[auth]/otp-data/route.ts similarity index 100% rename from src/app/api/auth/otp-data/route.ts rename to src/app/api/[auth]/otp-data/route.ts diff --git a/src/app/api/auth/refresh-session/route.ts b/src/app/api/[auth]/refresh-session/route.ts similarity index 100% rename from src/app/api/auth/refresh-session/route.ts rename to src/app/api/[auth]/refresh-session/route.ts diff --git a/src/app/api/auth/register/route.ts b/src/app/api/[auth]/register/route.ts similarity index 100% rename from src/app/api/auth/register/route.ts rename to src/app/api/[auth]/register/route.ts diff --git a/src/app/api/auth/resend/route.ts b/src/app/api/[auth]/resend/route.ts similarity index 100% rename from src/app/api/auth/resend/route.ts rename to src/app/api/[auth]/resend/route.ts diff --git a/src/app/api/auth/send-otp-register/route.ts b/src/app/api/[auth]/send-otp-register/route.ts similarity index 100% rename from src/app/api/auth/send-otp-register/route.ts rename to src/app/api/[auth]/send-otp-register/route.ts diff --git a/src/app/api/auth/set-flow/route.ts b/src/app/api/[auth]/set-flow/route.ts similarity index 100% rename from src/app/api/auth/set-flow/route.ts rename to src/app/api/[auth]/set-flow/route.ts diff --git a/src/app/api/auth/validasi/route.ts b/src/app/api/[auth]/validasi/route.ts similarity index 100% rename from src/app/api/auth/validasi/route.ts rename to src/app/api/[auth]/validasi/route.ts diff --git a/src/app/api/auth/verify-otp-login/route.ts b/src/app/api/[auth]/verify-otp-login/route.ts similarity index 100% rename from src/app/api/auth/verify-otp-login/route.ts rename to src/app/api/[auth]/verify-otp-login/route.ts diff --git a/src/app/api/auth/verify-otp-register/route.ts b/src/app/api/[auth]/verify-otp-register/route.ts similarity index 100% rename from src/app/api/auth/verify-otp-register/route.ts rename to src/app/api/[auth]/verify-otp-register/route.ts diff --git a/src/app/waiting-room/page.tsx b/src/app/waiting-room/page.tsx index a6ec5c74..342385ce 100644 --- a/src/app/waiting-room/page.tsx +++ b/src/app/waiting-room/page.tsx @@ -16,7 +16,7 @@ import { useEffect, useState } from 'react'; import { authStore } from '@/store/authStore'; // ✅ integrasi authStore async function fetchUser() { - const res = await fetch('/api/auth/me'); + const res = await fetch('/api/me'); if (!res.ok) { const text = await res.text(); throw new Error(`HTTP ${res.status}: ${text}`); @@ -77,7 +77,7 @@ export default function WaitingRoom() { // Force a session refresh try { - const res = await fetch('/api/auth/refresh-session', { + const res = await fetch('/api/refresh-session', { method: 'POST', credentials: 'include' });