summaryrefslogtreecommitdiff
path: root/src/actions/login.ts
diff options
context:
space:
mode:
Diffstat (limited to 'src/actions/login.ts')
-rw-r--r--src/actions/login.ts57
1 files changed, 32 insertions, 25 deletions
diff --git a/src/actions/login.ts b/src/actions/login.ts
index 4ceb13f..ee15fe6 100644
--- a/src/actions/login.ts
+++ b/src/actions/login.ts
@@ -1,9 +1,7 @@
"use server";
-import { AsyncRes } from "@/lib/types";
+import type { AsyncRes } from "@/lib/types";
import db from "../lib/db";
-import cookie from "cookie";
-import { cookies } from "../lib/server/cookiebridge";
-import { unstable_redirect, unstable_rerenderRoute } from "waku/router/server";
+import { useCookies } from "../lib/server/cookiebridge";
export type FormState = {
name?: string;
@@ -11,21 +9,30 @@ export type FormState = {
error?: string;
success?: boolean;
};
-async function call(formData: FormData, register: boolean) {
+async function call(
+ formData: FormData,
+ register: boolean,
+): AsyncRes<number | bigint> {
const nam = formData.get("username");
const creds = formData.get("password");
const password = await Bun.password.hash(creds!.toString());
const name = nam!.toString();
- const res = register
- ? db.addUser(name, password)
- : await db.loginUser(name, creds!.toString());
- return res;
+ try {
+ const res = register
+ ? db.addUser(name, password)
+ : await db.loginUser(name, creds!.toString());
+ return res;
+ } catch (e) {
+ console.error(e);
+ return { error: `${e}` };
+ }
}
export async function postRegister(
prevState: FormState,
formData: FormData,
): Promise<FormState> {
+ // "use server";
const res = await call(formData, true);
console.log("reg res", res);
if ("error" in res) return { error: "Something went wrong" };
@@ -37,15 +44,15 @@ export async function postRegister(
export async function postLogin(
prevState: FormState,
formData: FormData,
-): Promise<FormState> {
- return prevState;
- // const res = await call(formData, false);
- // if ("error" in res) return { error: res.error };
- // else {
- // setCookie(res.ok as number);
- // return prevState;
- // // return { success: true };
- // }
+): Promise<any> {
+ console.log(formData);
+ const res = await call(formData, false);
+ console.log({ res });
+ if ("error" in res) return { error: res.error };
+ else {
+ setCookie(res.ok as number);
+ return { success: true };
+ }
}
async function setCookie(userId: number) {
const COOKIE_EXPIRY = Date.now() + 1000 * 60 * 60 * 24 * 30;
@@ -54,13 +61,13 @@ async function setCookie(userId: number) {
const { randomBytes } = await import("node:crypto");
const cokistring = randomBytes(32).toBase64();
const res = db.setCookie(cokistring, userId, COOKIE_EXPIRY);
- const { setCookie } = cookies();
- setCookie("sorlang", cokistring, COOKIE_OPTS);
+ const { setCookie } = useCookies();
+ setCookie(cokistring);
// unstable_redirect("/");
}
-export async function postLogout(prev: number) {
- const { delCookie } = cookies();
- const rest = delCookie("sorlang");
- return prev + 9;
-}
+// export async function postLogout(prev: number) {
+// const { delCookie } = cookies();
+// const rest = delCookie("sorlang");
+// return prev + 9;
+// }