alpha-version-dce-check-in-ui
Version:
UI for taking attendance and checking people in.
65 lines (54 loc) • 1.55 kB
text/typescript
// 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;