add delete to admin panel
All checks were successful
deploy / build-and-deploy (push) Successful in 21s

This commit is contained in:
2025-05-21 20:53:53 +02:00
parent e47268111a
commit 45f984e4da
16 changed files with 207 additions and 50 deletions

View File

@@ -9,7 +9,9 @@ import {
type AddAdminReq,
addAdmin,
type EditAdminReq,
editAdmin
editAdmin,
type DeleteAdminReq,
deleteAdmin
} from './schema/admin';
import {
addTeam,
@@ -114,7 +116,9 @@ import {
type GetBlockedUserByUuidReq,
getBlockedUserByUuid,
type EditBlockedUserReq,
editBlockedUser
editBlockedUser,
type DeleteBlockedUserReq,
deleteBlockedUser
} from '@db/schema/blockedUser.ts';
export class Database {
@@ -173,6 +177,7 @@ export class Database {
/* admins */
addAdmin = (values: AddAdminReq) => addAdmin(this.db, values);
editAdmin = (values: EditAdminReq) => editAdmin(this.db, values);
deleteAdmin = (values: DeleteAdminReq) => deleteAdmin(this.db, values);
getAdmins = (values: GetAdminReq) => getAdmins(this.db, values);
existsAdmin = (values: ExistsAdminReq) => existsAdmin(this.db, values);
@@ -189,6 +194,7 @@ export class Database {
/* user blocks */
addBlockedUser = (values: AddBlockedUserReq) => addBlockedUser(this.db, values);
editBlockedUser = (values: EditBlockedUserReq) => editBlockedUser(this.db, values);
deleteBlockedUser = (values: DeleteBlockedUserReq) => deleteBlockedUser(this.db, values);
getBlockedUserByUuid = (values: GetBlockedUserByUuidReq) => getBlockedUserByUuid(this.db, values);
getBlockedUsers = (values: GetBlockedUsersReq) => getBlockedUsers(this.db, values);

View File

@@ -22,6 +22,10 @@ export type EditAdminReq = {
permissions: number;
};
export type DeleteAdminReq = {
id: number;
};
export type GetAdminReq = {};
export type GetAdminRes = Omit<typeof admin.$inferSelect, 'password'>[];
@@ -55,6 +59,10 @@ export async function editAdmin(db: Database, values: EditAdminReq) {
.where(eq(admin.id, values.id));
}
export async function deleteAdmin(db: Database, values: DeleteAdminReq) {
return db.delete(admin).where(eq(admin.id, values.id));
}
export async function getAdmins(db: Database, _values: GetAdminReq): Promise<GetAdminRes> {
return db.select({ id: admin.id, username: admin.username, permissions: admin.permissions }).from(admin);
}

View File

@@ -21,6 +21,10 @@ export type EditBlockedUserReq = {
comment?: string | null;
};
export type DeleteBlockedUserReq = {
id: number;
};
export type GetBlockedUserByUuidReq = {
uuid: string;
};
@@ -37,6 +41,10 @@ export async function editBlockedUser(db: Database, values: EditBlockedUserReq)
await db.update(blockedUser).set(values).where(eq(blockedUser.id, values.id));
}
export async function deleteBlockedUser(db: Database, values: DeleteBlockedUserReq) {
return db.delete(blockedUser).where(eq(blockedUser.id, values.id));
}
export async function getBlockedUserByUuid(db: Database, values: GetBlockedUserByUuidReq) {
const bu = await db.query.blockedUser.findFirst({
where: eq(blockedUser.uuid, values.uuid)