UNPKG

alpha-version-dce-check-in-ui

Version:

UI for taking attendance and checking people in.

65 lines (54 loc) 1.55 kB
// Import live grouper types import { GrouperAlgoSettings, StudentGroupAssignment } from 'dce-live-grouper'; // Import shared helper import genOccurrenceId from '../../../shared/helpers/genOccurrenceId'; // Import shared constants import TTM_PATH_PREFIX from '../../../shared/constants/TTM_PATH_PREFIX'; // Import shared types import { CreateEventBody, OccurrenceBasicInfo, } from '../../../shared/types'; // Import types import VisitServerEndpoint from '../../../types/VisitServerEndpoint'; /** * Call the backend to post a new event in a given series, i.e. inheriting old groups. * @author Benedikt Arnarsson * @param occInfo * @param seriesId */ const postNewEventInSeries = async (opts: { visitServerEndpoint: VisitServerEndpoint, occInfo: OccurrenceBasicInfo, seriesId: number, grouperAlgoSettings: GrouperAlgoSettings, preAssignments: StudentGroupAssignment[], }): Promise<void> => { const { visitServerEndpoint, occInfo, seriesId, grouperAlgoSettings, preAssignments, } = opts; const { courseId } = occInfo; const occId = genOccurrenceId(occInfo); const eventId = occId.replace(`${courseId}-`, ""); const createEventBody: CreateEventBody = { courseId, eventId, preAssignments, ...grouperAlgoSettings, metadata: { seriesId, }, }; return visitServerEndpoint({ path: `${TTM_PATH_PREFIX}/grouper/event`, method: 'POST', params: { createEventBody: JSON.stringify(createEventBody), }, }); }; export default postNewEventInSeries;