/api/client/list Endpoint 추가

This commit is contained in:
static
2024-12-29 22:03:39 +09:00
parent 97f6e1e32f
commit 4a10ba0fbf
4 changed files with 28 additions and 10 deletions

View File

@@ -21,12 +21,8 @@ export const createUserClient = async (userId: number, clientId: number) => {
await db.insert(userClient).values({ userId, clientId }).execute();
};
export const getAllValidUserClients = async (userId: number) => {
return await db
.select()
.from(userClient)
.where(and(eq(userClient.userId, userId), eq(userClient.state, "active")))
.execute();
export const getAllUserClients = async (userId: number) => {
return await db.select().from(userClient).where(eq(userClient.userId, userId)).execute();
};
export const getUserClient = async (userId: number, clientId: number) => {

View File

@@ -6,6 +6,7 @@ import {
createClient,
getClientByPubKey,
createUserClient,
getAllUserClients,
getUserClient,
createUserClientChallenge,
getUserClientChallenge,
@@ -13,6 +14,16 @@ import {
} from "$lib/server/db/client";
import env from "$lib/server/loadenv";
export const getUserClientList = async (userId: number) => {
const userClients = await getAllUserClients(userId);
return {
userClients: userClients.map(({ clientId, state }) => ({
id: clientId,
state,
})),
};
};
const expiresIn = ms(env.challenge.pubKeyExp);
const expiresAt = () => new Date(Date.now() + expiresIn);

View File

@@ -1,5 +1,5 @@
import { error } from "@sveltejs/kit";
import { getAllValidUserClients } from "$lib/server/db/client";
import { getAllUserClients } from "$lib/server/db/client";
import {
getAllValidClientMeks,
getActiveMek,
@@ -23,11 +23,12 @@ export const registerNewActiveMek = async (
createdBy: number,
clientMeks: ClientMek[],
) => {
const userClients = await getAllValidUserClients(userId);
const userClients = await getAllUserClients(userId);
const activeUserClients = userClients.filter(({ state }) => state === "active");
if (
clientMeks.length !== userClients.length ||
clientMeks.length !== activeUserClients.length ||
!clientMeks.every((clientMek) =>
userClients.some((userClient) => userClient.clientId === clientMek.clientId),
activeUserClients.some((userClient) => userClient.clientId === clientMek.clientId),
)
) {
error(400, "Invalid key list");

View File

@@ -0,0 +1,10 @@
import { json } from "@sveltejs/kit";
import { authenticate } from "$lib/server/modules/auth";
import { getUserClientList } from "$lib/server/services/client";
import type { RequestHandler } from "@sveltejs/kit";
export const GET: RequestHandler = async ({ cookies }) => {
const { userId } = authenticate(cookies);
const { userClients } = await getUserClientList(userId);
return json({ clients: userClients });
};