// Import live-grouper
import { EventStateData, getEvent } from 'dce-live-grouper';

// Import dce-reactkit
import { genRouteHandler, ParamType } from '../../../../dce-reactkit';

// Import types
import Router from '../../../types/Router';

/**
 * Endpoint for retrieving the EventStateData for an occurrence.
 * @author Benedikt Arnarsson
 * @param router the express router which we are adding this endpoint to.
 */
const addGetEventRoute = (
  router: Router,
) => {
  router.get(
    '/event',
    genRouteHandler({
      paramTypes: {
        courseId: ParamType.Int,
        eventId: ParamType.String,
      },
      handler: async ({ params }): Promise<EventStateData> => {
        const {
          courseId,
          eventId,
        } = params;

        return getEvent(courseId, eventId);
      },
    }),
  );
};

export default addGetEventRoute;
