/api/client/status Endpoint 추가

This commit is contained in:
static
2024-12-29 23:56:35 +09:00
parent 95bad90f36
commit ee752494cd
3 changed files with 42 additions and 1 deletions

View File

@@ -7,11 +7,13 @@ import {
getClientByPubKey,
createUserClient,
getAllUserClients,
countActiveUserClients,
getUserClient,
createUserClientChallenge,
getUserClientChallenge,
setUserClientStateToPending,
} from "$lib/server/db/client";
import { getActiveMek } from "$lib/server/db/mek";
import env from "$lib/server/loadenv";
export const getUserClientList = async (userId: number) => {
@@ -65,6 +67,22 @@ export const registerUserClient = async (userId: number, ip: string, pubKey: str
return await generateChallenge(userId, ip, clientId, pubKey);
};
export const getUserClientStatus = async (userId: number, clientId: number) => {
const userClient = await getUserClient(userId, clientId);
if (!userClient) {
error(500, "Invalid access token");
}
const activeMek = await getActiveMek(userId);
const activeUserClientCount = await countActiveUserClients(userId);
const isInitialMekNeeded = !activeMek && activeUserClientCount === 0;
return {
state: userClient.state,
isInitialMekNeeded,
};
};
export const verifyUserClient = async (userId: number, ip: string, answer: string) => {
const challenge = await getUserClientChallenge(answer, ip);
if (!challenge) {