mirror of
https://github.com/kmc7468/arkvault.git
synced 2025-12-16 15:08:46 +00:00
토큰에 클라이언트 정보를 함께 저장하도록 변경
This commit is contained in:
17
src/lib/server/db/client.ts
Normal file
17
src/lib/server/db/client.ts
Normal file
@@ -0,0 +1,17 @@
|
||||
import { and, eq } from "drizzle-orm";
|
||||
import db from "./drizzle";
|
||||
import { client, userClient } from "./schema";
|
||||
|
||||
export const getClientByPubKey = async (pubKey: string) => {
|
||||
const clients = await db.select().from(client).where(eq(client.pubKey, pubKey)).execute();
|
||||
return clients[0] ?? null;
|
||||
};
|
||||
|
||||
export const getUserClient = async (userId: number, clientId: number) => {
|
||||
const userClients = await db
|
||||
.select()
|
||||
.from(userClient)
|
||||
.where(and(eq(userClient.userId, userId), eq(userClient.clientId, clientId)))
|
||||
.execute();
|
||||
return userClients[0] ?? null;
|
||||
};
|
||||
@@ -1,29 +1,29 @@
|
||||
import { sqliteTable, text, integer, primaryKey } from "drizzle-orm/sqlite-core";
|
||||
import { user } from "./user";
|
||||
|
||||
export enum UserDeviceState {
|
||||
export enum UserClientState {
|
||||
PENDING = 0,
|
||||
ACTIVE = 1,
|
||||
}
|
||||
|
||||
export const device = sqliteTable("device", {
|
||||
export const client = sqliteTable("client", {
|
||||
id: integer("id").primaryKey(),
|
||||
pubKey: text("pub_key").notNull().unique(),
|
||||
pubKey: text("public_key").notNull().unique(),
|
||||
});
|
||||
|
||||
export const userDevice = sqliteTable(
|
||||
"user_device",
|
||||
export const userClient = sqliteTable(
|
||||
"user_client",
|
||||
{
|
||||
userId: integer("user_id")
|
||||
.notNull()
|
||||
.references(() => user.id),
|
||||
deviceId: integer("device_id")
|
||||
clientId: integer("client_id")
|
||||
.notNull()
|
||||
.references(() => device.id),
|
||||
.references(() => client.id),
|
||||
state: integer("state").notNull().default(0),
|
||||
encKey: text("enc_key"),
|
||||
encKey: text("encrypted_key"),
|
||||
},
|
||||
(t) => ({
|
||||
pk: primaryKey({ columns: [t.userId, t.deviceId] }),
|
||||
pk: primaryKey({ columns: [t.userId, t.clientId] }),
|
||||
}),
|
||||
);
|
||||
@@ -1,2 +1,2 @@
|
||||
export * from "./device";
|
||||
export * from "./client";
|
||||
export * from "./user";
|
||||
|
||||
Reference in New Issue
Block a user