caccl-lti
Version:
LTI launch validator for IMS-LTI standard launches.
106 lines (102 loc) • 3.27 kB
text/typescript
import AssignmentDescription from './AssignmentDescription';
import LaunchType from './LaunchType';
import OutcomeDescription from './OutcomeDescription';
/**
* Shared launch info (independent of launch type)
* @author Gabe Abrams
*/
interface SharedLaunchInfo {
// Launch timestamp
timestamp: number,
// Canvas host of the launch(where the user launched from)
canvasHost: string,
// Canvas courseId of the course the user launched from
courseId: number,
// Learning Information Services identifier for the course offering
sisCourseId: string,
// Canvas userId of the user who initiated the launch
userId: number,
// loginId of the user who initiated the launch
userLoginId: string,
// Launch user's first name
userFirstName: string,
// Launch user's last name
userLastName: string,
// Launch user's full name
userFullName: string,
// User's email
userEmail: string,
// URL of the user's profile image
userImage: string,
// True if the user is a Canvas admin
isAdmin: boolean,
// True if the user is an instructor
isInstructor: boolean,
// True if the user is a TA
isTA: boolean,
// True if the user is a course designer
isDesigner: boolean,
// True if the user is a learner for credit
isCreditLearner: boolean,
// True if the user is a learner not for credit
isNonCreditLearner: boolean,
// True if user is any type of learner
isLearner: boolean,
// True if the user is a teaching team member (TA, instructor, designer)
isTTM: boolean,
// True if the user is not in the course
notInCourse: boolean,
// List of ext Canvas roles for the launch user
extRoles: string[],
// Map of custom launch params (key is name, value is custom parameter value)
customParams: { [k: string]: any },
// LTI launch context id
contextId: string,
// LTI launch context label
contextLabel: string,
// Canvas enrollment state for the launch course (example: 'active')
enrollmentState: string,
// Canvas workflow state(example: 'available')
workflowState: string,
// LTI launch presentation target(example: 'iframe')
launchPresentationTarget: string,
// Width of the iframe in pixels (if available)
iframeWidth?: number,
// Height of the iframe in pixels (if available)
iframeHeight?: number,
// Locale of the current user (example: 'en')
locale: string,
// Launch presentation return URL
returnURL: string,
// List of deprecated Canvas roles
roles: string[],
// Name of the Canvas instance the user launched from
canvasInstance: string,
// The resource link id
resourceLinkId: string,
// Original body of the launch request
originalLTILaunchBody: { [k in string]: any },
// Consumer key
consumerKey: string,
}
/**
* Type for launch info that's added to user's session
* @author Gabe Abrams
*/
type LaunchInfo = (
| {
// Assignment launch type
launchType: LaunchType.Assignment,
// Assignment user launched from
assignment?: AssignmentDescription,
// External assignment outcome info
outcome?: OutcomeDescription,
}
| {
// Assignment launch type
launchType: LaunchType.Navigation,
// Title of the app that was launched
launchAppTitle?: string,
}
) & SharedLaunchInfo;
export default LaunchInfo;