aboutsummaryrefslogtreecommitdiffhomepage
path: root/pkgs/server/src/repositories
diff options
context:
space:
mode:
authornsfisis <nsfisis@gmail.com>2025-12-06 17:05:21 +0900
committernsfisis <nsfisis@gmail.com>2025-12-06 17:37:04 +0900
commit811458427593a4172a2cd535cc768db375350dca (patch)
tree6c4f46c96b6f29392dc19d591e39e03c187033a1 /pkgs/server/src/repositories
parent9736a8981fbd6c6defbd67517ca23904fc844629 (diff)
downloadkioku-811458427593a4172a2cd535cc768db375350dca.tar.gz
kioku-811458427593a4172a2cd535cc768db375350dca.tar.zst
kioku-811458427593a4172a2cd535cc768db375350dca.zip
feat(dev): change architecture and directory structure
Diffstat (limited to 'pkgs/server/src/repositories')
-rw-r--r--pkgs/server/src/repositories/index.ts3
-rw-r--r--pkgs/server/src/repositories/refresh-token.ts35
-rw-r--r--pkgs/server/src/repositories/types.ts46
-rw-r--r--pkgs/server/src/repositories/user.ts55
4 files changed, 0 insertions, 139 deletions
diff --git a/pkgs/server/src/repositories/index.ts b/pkgs/server/src/repositories/index.ts
deleted file mode 100644
index f1bcfb1..0000000
--- a/pkgs/server/src/repositories/index.ts
+++ /dev/null
@@ -1,3 +0,0 @@
-export { refreshTokenRepository } from "./refresh-token";
-export * from "./types";
-export { userRepository } from "./user";
diff --git a/pkgs/server/src/repositories/refresh-token.ts b/pkgs/server/src/repositories/refresh-token.ts
deleted file mode 100644
index 82302df..0000000
--- a/pkgs/server/src/repositories/refresh-token.ts
+++ /dev/null
@@ -1,35 +0,0 @@
-import { and, eq, gt } from "drizzle-orm";
-import { db, refreshTokens } from "../db";
-import type { RefreshTokenRepository } from "./types";
-
-export const refreshTokenRepository: RefreshTokenRepository = {
- async findValidToken(tokenHash) {
- const [token] = await db
- .select({
- id: refreshTokens.id,
- userId: refreshTokens.userId,
- expiresAt: refreshTokens.expiresAt,
- })
- .from(refreshTokens)
- .where(
- and(
- eq(refreshTokens.tokenHash, tokenHash),
- gt(refreshTokens.expiresAt, new Date()),
- ),
- )
- .limit(1);
- return token;
- },
-
- async create(data) {
- await db.insert(refreshTokens).values({
- userId: data.userId,
- tokenHash: data.tokenHash,
- expiresAt: data.expiresAt,
- });
- },
-
- async deleteById(id) {
- await db.delete(refreshTokens).where(eq(refreshTokens.id, id));
- },
-};
diff --git a/pkgs/server/src/repositories/types.ts b/pkgs/server/src/repositories/types.ts
deleted file mode 100644
index 1ab4bdc..0000000
--- a/pkgs/server/src/repositories/types.ts
+++ /dev/null
@@ -1,46 +0,0 @@
-/**
- * Repository types for abstracting database operations
- */
-
-export interface User {
- id: string;
- username: string;
- passwordHash: string;
- createdAt: Date;
- updatedAt: Date;
-}
-
-export interface UserPublic {
- id: string;
- username: string;
- createdAt: Date;
-}
-
-export interface RefreshToken {
- id: string;
- userId: string;
- tokenHash: string;
- expiresAt: Date;
- createdAt: Date;
-}
-
-export interface UserRepository {
- findByUsername(
- username: string,
- ): Promise<Pick<User, "id" | "username" | "passwordHash"> | undefined>;
- existsByUsername(username: string): Promise<boolean>;
- create(data: { username: string; passwordHash: string }): Promise<UserPublic>;
- findById(id: string): Promise<Pick<User, "id" | "username"> | undefined>;
-}
-
-export interface RefreshTokenRepository {
- findValidToken(
- tokenHash: string,
- ): Promise<Pick<RefreshToken, "id" | "userId" | "expiresAt"> | undefined>;
- create(data: {
- userId: string;
- tokenHash: string;
- expiresAt: Date;
- }): Promise<void>;
- deleteById(id: string): Promise<void>;
-}
diff --git a/pkgs/server/src/repositories/user.ts b/pkgs/server/src/repositories/user.ts
deleted file mode 100644
index 7917632..0000000
--- a/pkgs/server/src/repositories/user.ts
+++ /dev/null
@@ -1,55 +0,0 @@
-import { eq } from "drizzle-orm";
-import { db, users } from "../db";
-import type { UserPublic, UserRepository } from "./types";
-
-export const userRepository: UserRepository = {
- async findByUsername(username) {
- const [user] = await db
- .select({
- id: users.id,
- username: users.username,
- passwordHash: users.passwordHash,
- })
- .from(users)
- .where(eq(users.username, username))
- .limit(1);
- return user;
- },
-
- async existsByUsername(username) {
- const [user] = await db
- .select({ id: users.id })
- .from(users)
- .where(eq(users.username, username))
- .limit(1);
- return user !== undefined;
- },
-
- async create(data): Promise<UserPublic> {
- const [newUser] = await db
- .insert(users)
- .values({
- username: data.username,
- passwordHash: data.passwordHash,
- })
- .returning({
- id: users.id,
- username: users.username,
- createdAt: users.createdAt,
- });
- // Insert with returning should always return the created row
- return newUser!;
- },
-
- async findById(id) {
- const [user] = await db
- .select({
- id: users.id,
- username: users.username,
- })
- .from(users)
- .where(eq(users.id, id))
- .limit(1);
- return user;
- },
-};