De-duplicate serverUserToApi
All checks were successful
/ build (push) Successful in 1m32s
/ deploy (push) Successful in 15s

This commit is contained in:
Hornwitser 2025-06-24 15:31:47 +02:00
parent 985b8e0950
commit afd7aeea04
3 changed files with 21 additions and 36 deletions

View file

@ -1,24 +1,8 @@
import { readUsers, type ServerUser, writeUsers } from "~/server/database"; import { readUsers, writeUsers } from "~/server/database";
import { type ApiTombstone, type ApiUser, apiUserPatchSchema } from "~/shared/types/api"; import { apiUserPatchSchema } from "~/shared/types/api";
import { z } from "zod/v4-mini"; import { z } from "zod/v4-mini";
import { broadcastEvent } from "~/server/streams"; import { broadcastEvent } from "~/server/streams";
function serverUserToApi(user: ServerUser): ApiUser | ApiTombstone {
if (user.deleted) {
return {
id: user.id,
updatedAt: user.updatedAt,
deleted: true,
}
}
return {
id: user.id,
updatedAt: user.updatedAt,
type: user.type,
name: user.name,
};
}
export default defineEventHandler(async (event) => { export default defineEventHandler(async (event) => {
const session = await requireServerSession(event); const session = await requireServerSession(event);
if (session.account.type !== "admin") { if (session.account.type !== "admin") {

View file

@ -1,21 +1,4 @@
import { readUsers, type ServerUser } from "~/server/database" import { readUsers } from "~/server/database"
import type { ApiTombstone, ApiUser } from "~/shared/types/api";
function serverUserToApi(user: ServerUser): ApiUser | ApiTombstone {
if (user.deleted) {
return {
id: user.id,
updatedAt: user.updatedAt,
deleted: true,
}
}
return {
id: user.id,
updatedAt: user.updatedAt,
type: user.type,
name: user.name,
}
}
export default defineEventHandler(async (event) => { export default defineEventHandler(async (event) => {
const session = await requireServerSession(event); const session = await requireServerSession(event);

18
server/utils/user.ts Normal file
View file

@ -0,0 +1,18 @@
import type { ServerUser } from "~/server/database"
import type { ApiTombstone, ApiUser } from "~/shared/types/api";
export function serverUserToApi(user: ServerUser): ApiUser | ApiTombstone {
if (user.deleted) {
return {
id: user.id,
updatedAt: user.updatedAt,
deleted: true,
}
}
return {
id: user.id,
updatedAt: user.updatedAt,
type: user.type,
name: user.name,
}
}