add strike reason admin panel
This commit is contained in:
@@ -98,7 +98,17 @@ import {
|
||||
} from './schema/feedback.ts';
|
||||
import { addReport, type AddReportReq, getReports, type GetReportsReq, report } from './schema/report.ts';
|
||||
import { DATABASE_URI } from 'astro:env/server';
|
||||
import { type GetStrikeReasonsReq, getStrikeReasons, strikeReason } from '@db/schema/strikeReason.ts';
|
||||
import {
|
||||
type GetStrikeReasonsReq,
|
||||
getStrikeReasons,
|
||||
strikeReason,
|
||||
type AddStrikeReasonReq,
|
||||
addStrikeReason,
|
||||
type EditStrikeReasonReq,
|
||||
editStrikeReason,
|
||||
type DeleteStrikeReasonReq,
|
||||
deleteStrikeReason
|
||||
} from '@db/schema/strikeReason.ts';
|
||||
import { getStrikesByTeamId, type GetStrikesByTeamId, strike } from '@db/schema/strike.ts';
|
||||
import {
|
||||
editReportStatus,
|
||||
@@ -232,7 +242,12 @@ export class Database {
|
||||
editReportStatus = (values: EditReportStatusReq) => editReportStatus(this.db, values);
|
||||
|
||||
/* strike reason */
|
||||
addStrikeReason = (values: AddStrikeReasonReq) => addStrikeReason(this.db, values);
|
||||
editStrikeReason = (values: EditStrikeReasonReq) => editStrikeReason(this.db, values);
|
||||
deleteStrikeReason = (values: DeleteStrikeReasonReq) => deleteStrikeReason(this.db, values);
|
||||
getStrikeReasons = (values: GetStrikeReasonsReq) => getStrikeReasons(this.db, values);
|
||||
|
||||
/* strikes */
|
||||
getStrikesByTeamId = (values: GetStrikesByTeamId) => getStrikesByTeamId(this.db, values);
|
||||
|
||||
/* feedback */
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
import { int, mysqlTable, tinyint, varchar } from 'drizzle-orm/mysql-core';
|
||||
import type { MySql2Database } from 'drizzle-orm/mysql2';
|
||||
import { asc } from 'drizzle-orm';
|
||||
import { asc, eq } from 'drizzle-orm';
|
||||
|
||||
type Database = MySql2Database<{ strikeReason: typeof strikeReason }>;
|
||||
|
||||
@@ -10,8 +10,33 @@ export const strikeReason = mysqlTable('strike_reason', {
|
||||
weight: tinyint('weight').notNull()
|
||||
});
|
||||
|
||||
export type AddStrikeReasonReq = {
|
||||
name: string;
|
||||
weight: number;
|
||||
};
|
||||
|
||||
export type EditStrikeReasonReq = typeof strikeReason.$inferSelect;
|
||||
|
||||
export type DeleteStrikeReasonReq = {
|
||||
id: number;
|
||||
};
|
||||
|
||||
export type GetStrikeReasonsReq = {};
|
||||
|
||||
export async function addStrikeReason(db: Database, values: AddStrikeReasonReq) {
|
||||
const sr = await db.insert(strikeReason).values(values).$returningId();
|
||||
|
||||
return sr[0];
|
||||
}
|
||||
|
||||
export async function editStrikeReason(db: Database, values: EditStrikeReasonReq) {
|
||||
await db.update(strikeReason).set(values).where(eq(strikeReason.id, values.id));
|
||||
}
|
||||
|
||||
export async function deleteStrikeReason(db: Database, values: DeleteStrikeReasonReq) {
|
||||
await db.delete(strikeReason).where(eq(strikeReason.id, values.id));
|
||||
}
|
||||
|
||||
export async function getStrikeReasons(db: Database, _values: GetStrikeReasonsReq) {
|
||||
return db.select().from(strikeReason).orderBy(asc(strikeReason.weight));
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user