mirror of
https://github.com/kmc7468/arkvault.git
synced 2025-12-16 15:08:46 +00:00
/api/auth/changePassword, /api/user, /api/user/changeNickname Endpoint 구현
This commit is contained in:
@@ -4,4 +4,5 @@ export const user = sqliteTable("user", {
|
||||
id: integer("id").primaryKey({ autoIncrement: true }),
|
||||
email: text("email").notNull().unique(),
|
||||
password: text("password").notNull(),
|
||||
nickname: text("nickname").notNull(),
|
||||
});
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
import { SqliteError } from "better-sqlite3";
|
||||
import { and, eq, gt, lte, isNull } from "drizzle-orm";
|
||||
import { and, eq, ne, gt, lte, isNull } from "drizzle-orm";
|
||||
import env from "$lib/server/loadenv";
|
||||
import db from "./drizzle";
|
||||
import { IntegrityError } from "./error";
|
||||
@@ -71,6 +71,10 @@ export const deleteSession = async (sessionId: string) => {
|
||||
await db.delete(session).where(eq(session.id, sessionId));
|
||||
};
|
||||
|
||||
export const deleteAllOtherSessions = async (userId: number, sessionId: string) => {
|
||||
await db.delete(session).where(and(eq(session.userId, userId), ne(session.id, sessionId)));
|
||||
};
|
||||
|
||||
export const cleanupExpiredSessions = async () => {
|
||||
await db.delete(session).where(lte(session.lastUsedAt, new Date(Date.now() - env.session.exp)));
|
||||
};
|
||||
|
||||
@@ -2,7 +2,20 @@ import { eq } from "drizzle-orm";
|
||||
import db from "./drizzle";
|
||||
import { user } from "./schema";
|
||||
|
||||
export const getUser = async (userId: number) => {
|
||||
const users = await db.select().from(user).where(eq(user.id, userId)).limit(1);
|
||||
return users[0] ?? null;
|
||||
};
|
||||
|
||||
export const getUserByEmail = async (email: string) => {
|
||||
const users = await db.select().from(user).where(eq(user.email, email)).limit(1);
|
||||
return users[0] ?? null;
|
||||
};
|
||||
|
||||
export const setUserPassword = async (userId: number, password: string) => {
|
||||
await db.update(user).set({ password }).where(eq(user.id, userId));
|
||||
};
|
||||
|
||||
export const setUserNickname = async (userId: number, nickname: string) => {
|
||||
await db.update(user).set({ nickname }).where(eq(user.id, userId));
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user