From 693f5d265eb534106383d7ca2e12ad8adb642b72 Mon Sep 17 00:00:00 2001 From: vergiLgood1 Date: Sat, 15 Mar 2025 22:49:23 +0700 Subject: [PATCH] refactor project structure (backups) --- .../app/(pages)/(admin)/dashboard/page.tsx | 8 +- .../(auth)/_components/signin-form.tsx | 38 +- sigap-website/app/(pages)/(auth)/action.ts | 119 ++ sigap-website/app/(pages)/(auth)/layout.tsx | 2 +- sigap-website/app/_utils/supabase/server.ts | 2 + sigap-website/di/container.ts | 26 + .../di/modules/authentication.module.ts | 41 + sigap-website/di/modules/monitoring.module.ts | 25 + sigap-website/di/types.ts | 55 + sigap-website/package-lock.json | 7 + sigap-website/package.json | 1 + sigap-website/prisma/db.ts | 9 +- .../repositories/authentication.repository.ts | 184 +-- .../repositories/users.repository.ts | 1022 +++++++++++------ .../authentication.service.interface.ts | 18 + .../instrumentation.service.interface.ts | 33 +- .../auth/send-magic-link.use-case.ts | 25 + .../auth/send-password-recovery.use-case.ts | 25 + .../use-cases/auth/sign-in.use-case.ts | 43 + .../use-cases/auth/sign-out.use-case.ts | 15 + .../use-cases/auth/sign-up.use-case.ts | 47 + .../use-cases/auth/verify-otp.use-case.ts | 30 + .../use-cases/users/ban-user.use-case.ts | 27 + .../use-cases/users/create-user.use-case.ts | 38 + .../use-cases/users/delete-user.use-case.ts | 15 + .../users/get-current-user.use-case.ts | 27 + .../users/get-list-users.use-case.ts | 16 + .../users/get-user-by-email.use-case.ts | 26 + .../users/get-user-by-id.use-case.ts | 28 + .../users/get-user-by-username.use-case.ts | 26 + .../use-cases/users/invite-user.use-case.ts | 34 + .../use-cases/users/update-user.use-case.ts | 28 + .../entities/models/auth/auth-result.model.ts | 12 + .../src/entities/models/auth/session.model.ts | 13 + .../src/entities/models/auth/sign-in.model.ts | 33 +- .../src/entities/models/auth/sign-up.model.ts | 36 + .../entities/models/auth/verify-otp.model.ts | 1 + .../entities/models/transaction.interface.ts | 2 +- .../src/entities/models/users/users.model.ts | 17 +- .../repositories/users.repository.impl.ts | 452 ++++++++ .../services/authentication.service.ts | 273 +++++ .../services/crash-reporter.service.ts | 0 .../services/instrumentation.service.ts | 0 .../services/transaction-manager.service.ts | 0 .../auth/authentication-controller.ts | 78 ++ .../controllers/auth/sign-in-controller.tsx | 4 +- 46 files changed, 2408 insertions(+), 553 deletions(-) create mode 100644 sigap-website/app/(pages)/(auth)/action.ts create mode 100644 sigap-website/di/container.ts create mode 100644 sigap-website/di/modules/authentication.module.ts create mode 100644 sigap-website/di/modules/monitoring.module.ts create mode 100644 sigap-website/di/types.ts create mode 100644 sigap-website/src/application/services/authentication.service.interface.ts create mode 100644 sigap-website/src/application/use-cases/auth/send-magic-link.use-case.ts create mode 100644 sigap-website/src/application/use-cases/auth/send-password-recovery.use-case.ts create mode 100644 sigap-website/src/application/use-cases/auth/sign-in.use-case.ts create mode 100644 sigap-website/src/application/use-cases/auth/sign-out.use-case.ts create mode 100644 sigap-website/src/application/use-cases/auth/sign-up.use-case.ts create mode 100644 sigap-website/src/application/use-cases/auth/verify-otp.use-case.ts create mode 100644 sigap-website/src/application/use-cases/users/ban-user.use-case.ts create mode 100644 sigap-website/src/application/use-cases/users/create-user.use-case.ts create mode 100644 sigap-website/src/application/use-cases/users/delete-user.use-case.ts create mode 100644 sigap-website/src/application/use-cases/users/get-current-user.use-case.ts create mode 100644 sigap-website/src/application/use-cases/users/get-list-users.use-case.ts create mode 100644 sigap-website/src/application/use-cases/users/get-user-by-email.use-case.ts create mode 100644 sigap-website/src/application/use-cases/users/get-user-by-id.use-case.ts create mode 100644 sigap-website/src/application/use-cases/users/get-user-by-username.use-case.ts create mode 100644 sigap-website/src/application/use-cases/users/invite-user.use-case.ts create mode 100644 sigap-website/src/application/use-cases/users/update-user.use-case.ts create mode 100644 sigap-website/src/entities/models/auth/auth-result.model.ts create mode 100644 sigap-website/src/entities/models/auth/session.model.ts create mode 100644 sigap-website/src/entities/models/auth/sign-up.model.ts create mode 100644 sigap-website/src/infrastructure/repositories/users.repository.impl.ts create mode 100644 sigap-website/src/infrastructure/services/authentication.service.ts create mode 100644 sigap-website/src/infrastructure/services/crash-reporter.service.ts create mode 100644 sigap-website/src/infrastructure/services/instrumentation.service.ts create mode 100644 sigap-website/src/infrastructure/services/transaction-manager.service.ts create mode 100644 sigap-website/src/interface-adapters/controllers/auth/authentication-controller.ts diff --git a/sigap-website/app/(pages)/(admin)/dashboard/page.tsx b/sigap-website/app/(pages)/(admin)/dashboard/page.tsx index 73f05a1..9802361 100644 --- a/sigap-website/app/(pages)/(admin)/dashboard/page.tsx +++ b/sigap-website/app/(pages)/(admin)/dashboard/page.tsx @@ -6,10 +6,10 @@ export default async function DashboardPage() { const supabase = await createClient(); const { - data: { user }, - } = await supabase.auth.getUser(); + data: { session }, + } = await supabase.auth.getSession(); - if (!user) { + if (!session) { return redirect("/sign-in"); } @@ -20,7 +20,7 @@ export default async function DashboardPage() {
-              {JSON.stringify(user, null, 2)}
+              {JSON.stringify(session, null, 2)}
             
diff --git a/sigap-website/app/(pages)/(auth)/_components/signin-form.tsx b/sigap-website/app/(pages)/(auth)/_components/signin-form.tsx index 7e92a6e..174900c 100644 --- a/sigap-website/app/(pages)/(auth)/_components/signin-form.tsx +++ b/sigap-website/app/(pages)/(auth)/_components/signin-form.tsx @@ -8,13 +8,33 @@ import { SubmitButton } from "@/app/_components/submit-button"; import Link from "next/link"; import { FormField } from "@/app/_components/form-field"; import { useSignInController } from "@/src/interface-adapters/controllers/auth/sign-in-controller"; +import { useState } from "react"; +import { signIn } from "../action"; export function SignInForm({ className, ...props }: React.ComponentPropsWithoutRef<"form">) { - const { register, isPending, handleSubmit, errors } = useSignInController(); + const [error, setError] = useState(); + const [loading, setLoading] = useState(false); + + const onSubmit = async (event: React.FormEvent) => { + event.preventDefault(); + if (loading) return; + + const formData = new FormData(event.currentTarget); + + setLoading(true); + const res = await signIn(formData); + if (res && res.error) { + setError(res.error); + } + setLoading(false); + }; + + + // const { register, isPending, handleSubmit, errors } = useSignInController(); return (
@@ -41,7 +61,7 @@ export function SignInForm({ variant="outline" className="w-full bg-[#1C1C1C] text-white border-gray-800 hover:bg-[#2C2C2C] hover:border-gray-700" size="lg" - disabled={isPending} + disabled={loading} > Continue with SSO @@ -57,28 +77,28 @@ export function SignInForm({
-
+ } - error={errors.email ? errors.email.message : undefined} + error={error ? error : undefined} />