CG-Feedback-Monitor/src/db/queries/assignmentFeedback.ts

58 lines
3.9 KiB
TypeScript

import { rpc } from '../rpcClient'
import type {
FeedbackDraft, AssignmentFeedback, FeedbackCategoryRating, FeedbackDimensionText, FeedbackCategoryText,
} from '../types'
export const getFeedbackDraft = (assignmentId: number, instituteeId: number): Promise<FeedbackDraft | undefined> =>
rpc('assignmentFeedback', 'getFeedbackDraft', assignmentId, instituteeId)
export const addFeedbackDraft = (d: Omit<FeedbackDraft, 'id'>): Promise<number> => rpc('assignmentFeedback', 'addFeedbackDraft', d)
export const updateFeedbackDraft = (id: number, patch: Partial<FeedbackDraft>): Promise<number> =>
rpc('assignmentFeedback', 'updateFeedbackDraft', id, patch)
export const getAssignmentFeedback = (assignmentId: number, instituteeId: number): Promise<AssignmentFeedback | undefined> =>
rpc('assignmentFeedback', 'getAssignmentFeedback', assignmentId, instituteeId)
/** Für die Auswertungsübersicht: Feedback-Status (Entwurf/Final) aller Assignments auf einen Schlag, statt N+1-Abfragen pro Zeile. */
export const listAssignmentFeedbacksAll = (): Promise<AssignmentFeedback[]> => rpc('assignmentFeedback', 'listAssignmentFeedbacksAll')
export const getAssignmentFeedbackById = (id: number): Promise<AssignmentFeedback | undefined> =>
rpc('assignmentFeedback', 'getAssignmentFeedbackById', id)
export const addAssignmentFeedback = (f: Omit<AssignmentFeedback, 'id'>): Promise<number> =>
rpc('assignmentFeedback', 'addAssignmentFeedback', f)
export const updateAssignmentFeedback = (id: number, patch: Partial<AssignmentFeedback>): Promise<number> =>
rpc('assignmentFeedback', 'updateAssignmentFeedback', id, patch)
export const getOrCreateAssignmentFeedback = (
assignmentId: number,
instituteeId: number,
): Promise<AssignmentFeedback | undefined> => rpc('assignmentFeedback', 'getOrCreateAssignmentFeedback', assignmentId, instituteeId)
export const listFeedbackCategoryRatings = (assignmentFeedbackId: number): Promise<FeedbackCategoryRating[]> =>
rpc('assignmentFeedback', 'listFeedbackCategoryRatings', assignmentFeedbackId)
export const addFeedbackCategoryRating = (r: Omit<FeedbackCategoryRating, 'id'>): Promise<number> =>
rpc('assignmentFeedback', 'addFeedbackCategoryRating', r)
export const updateFeedbackCategoryRating = (id: number, patch: Partial<FeedbackCategoryRating>): Promise<number> =>
rpc('assignmentFeedback', 'updateFeedbackCategoryRating', id, patch)
export const listFeedbackDimensionTexts = (assignmentFeedbackId: number): Promise<FeedbackDimensionText[]> =>
rpc('assignmentFeedback', 'listFeedbackDimensionTexts', assignmentFeedbackId)
export const getFeedbackDimensionText = (
assignmentFeedbackId: number,
feedbackDimensionId: number,
): Promise<FeedbackDimensionText | undefined> =>
rpc('assignmentFeedback', 'getFeedbackDimensionText', assignmentFeedbackId, feedbackDimensionId)
export const addFeedbackDimensionText = (t: Omit<FeedbackDimensionText, 'id'>): Promise<number> =>
rpc('assignmentFeedback', 'addFeedbackDimensionText', t)
export const updateFeedbackDimensionText = (id: number, patch: Partial<FeedbackDimensionText>): Promise<number> =>
rpc('assignmentFeedback', 'updateFeedbackDimensionText', id, patch)
export const listFeedbackCategoryTexts = (assignmentFeedbackId: number): Promise<FeedbackCategoryText[]> =>
rpc('assignmentFeedback', 'listFeedbackCategoryTexts', assignmentFeedbackId)
export const getFeedbackCategoryText = (
assignmentFeedbackId: number,
feedbackCategoryId: number,
): Promise<FeedbackCategoryText | undefined> =>
rpc('assignmentFeedback', 'getFeedbackCategoryText', assignmentFeedbackId, feedbackCategoryId)
export const addFeedbackCategoryText = (t: Omit<FeedbackCategoryText, 'id'>): Promise<number> =>
rpc('assignmentFeedback', 'addFeedbackCategoryText', t)
export const updateFeedbackCategoryText = (id: number, patch: Partial<FeedbackCategoryText>): Promise<number> =>
rpc('assignmentFeedback', 'updateFeedbackCategoryText', id, patch)