// Import express
import express from 'express';

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

/**
 * Extract launch info from user's session
 * @author Gabe Abrams
 * @param req express request object
 * @returns info on user's current LTI launch status
 */
const getLaunchInfo = (
  // FIXME: not the best hack...
  req: express.Request & any,
): (
  | {
    // True if launched
    launched: false,
    // Launch info
    launchInfo: undefined,
  }
  | {
    // True if launched
    launched: true,
    // Launch info
    launchInfo: LaunchInfo,
  }
  ) => {
  if (
    req
    && req.session
    && req.session.launchInfo
  ) {
    return {
      launched: true,
      launchInfo: req.session.launchInfo,
    };
  }
  return {
    launched: false,
    launchInfo: undefined,
  };
};

export default getLaunchInfo;
