UNPKG

caccl-api

Version:

A class that defines a set of smart Canvas endpoints that actually behave how you'd expect them to.

2,528 lines (818 loc) 78.5 kB
<!DOCTYPE html> <html lang="en"> <head> <meta charset="utf-8"> <title>app - Documentation</title> <script src="scripts/prettify/prettify.js"></script> <script src="scripts/prettify/lang-css.js"></script> <!--[if lt IE 9]> <script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script> <![endif]--> <link type="text/css" rel="stylesheet" href="styles/prettify.css"> <link type="text/css" rel="stylesheet" href="styles/jsdoc.css"> <script src="scripts/nav.js" defer></script> <meta name="viewport" content="width=device-width, initial-scale=1.0"> </head> <body> <input type="checkbox" id="nav-trigger" class="nav-trigger" /> <label for="nav-trigger" class="navicon-button x"> <div class="navicon"></div> </label> <label for="nav-trigger" class="overlay"></label> <nav style="border-right: 2px solid #ccc; padding-bottom: 25px;" > <h2><a style="font-size: 30px;" href="index.html">CACCL API</a></h2><h3>Endpoint Functions</h3><ul><li><a href="api.account.html">api.account</a><ul class='methods'><li data-type='method'><a href="api.account.html#get">get</a></li><li data-type='method'><a href="api.account.html#list">list</a></li><li data-type='method'><a href="api.account.html#listAdmins">listAdmins</a></li><li data-type='method'><a href="api.account.html#listCourses">listCourses</a></li></ul></li><li><a href="api.conversation.html">api.conversation</a><ul class='methods'><li data-type='method'><a href="api.conversation.html#create">create</a></li></ul></li><li><a href="api.course.html">api.course</a><ul class='methods'><li data-type='method'><a href="api.course.html#get">get</a></li><li data-type='method'><a href="api.course.html#getUser">getUser</a></li><li data-type='method'><a href="api.course.html#listDesignerEnrollments">listDesignerEnrollments</a></li><li data-type='method'><a href="api.course.html#listDesigners">listDesigners</a></li><li data-type='method'><a href="api.course.html#listEnrollments">listEnrollments</a></li><li data-type='method'><a href="api.course.html#listObserverEnrollments">listObserverEnrollments</a></li><li data-type='method'><a href="api.course.html#listObservers">listObservers</a></li><li data-type='method'><a href="api.course.html#listStudentEnrollments">listStudentEnrollments</a></li><li data-type='method'><a href="api.course.html#listStudents">listStudents</a></li><li data-type='method'><a href="api.course.html#listTAs">listTAs</a></li><li data-type='method'><a href="api.course.html#listTeachers">listTeachers</a></li><li data-type='method'><a href="api.course.html#listTeachingTeamMemberEnrollments">listTeachingTeamMemberEnrollments</a></li><li data-type='method'><a href="api.course.html#listTeachingTeamMembers">listTeachingTeamMembers</a></li><li data-type='method'><a href="api.course.html#listUsers">listUsers</a></li><li data-type='method'><a href="api.course.html#migrateContent">migrateContent</a></li><li data-type='method'><a href="api.course.html#updatePublishState">updatePublishState</a></li></ul></li><li><a href="api.course.analytics.html">api.course.analytics</a><ul class='methods'><li data-type='method'><a href="api.course.analytics.html#getStudentMessagingData">getStudentMessagingData</a></li><li data-type='method'><a href="api.course.analytics.html#getStudentParticipationData">getStudentParticipationData</a></li><li data-type='method'><a href="api.course.analytics.html#getStudentSummary">getStudentSummary</a></li><li data-type='method'><a href="api.course.analytics.html#listAssignmentSummaries">listAssignmentSummaries</a></li><li data-type='method'><a href="api.course.analytics.html#listDailyActivitySummaries">listDailyActivitySummaries</a></li><li data-type='method'><a href="api.course.analytics.html#listStudentSummaries">listStudentSummaries</a></li></ul></li><li><a href="api.course.announcement.html">api.course.announcement</a><ul class='methods'><li data-type='method'><a href="api.course.announcement.html#create">create</a></li><li data-type='method'><a href="api.course.announcement.html#list">list</a></li></ul></li><li><a href="api.course.app.html">api.course.app</a><ul class='methods'><li data-type='method'><a href="api.course.app.html#addByClientId">addByClientId</a></li><li data-type='method'><a href="api.course.app.html#addByXML">addByXML</a></li><li data-type='method'><a href="api.course.app.html#addRedirect">addRedirect</a></li><li data-type='method'><a href="api.course.app.html#get">get</a></li><li data-type='method'><a href="api.course.app.html#getAssignmentLaunchURL">getAssignmentLaunchURL</a></li><li data-type='method'><a href="api.course.app.html#getMetadata">getMetadata</a></li><li data-type='method'><a href="api.course.app.html#getNavLaunchURL">getNavLaunchURL</a></li><li data-type='method'><a href="api.course.app.html#hideFromNav">hideFromNav</a></li><li data-type='method'><a href="api.course.app.html#list">list</a></li><li data-type='method'><a href="api.course.app.html#moveToTopOfNavMenu">moveToTopOfNavMenu</a></li><li data-type='method'><a href="api.course.app.html#remove">remove</a></li><li data-type='method'><a href="api.course.app.html#showInNav">showInNav</a></li><li data-type='method'><a href="api.course.app.html#updateMetadata">updateMetadata</a></li></ul></li><li><a href="api.course.assignment.html">api.course.assignment</a><ul class='methods'><li data-type='method'><a href="api.course.assignment.html#create">create</a></li><li data-type='method'><a href="api.course.assignment.html#createOverride">createOverride</a></li><li data-type='method'><a href="api.course.assignment.html#createSubmissionComment">createSubmissionComment</a></li><li data-type='method'><a href="api.course.assignment.html#createTextSubmission">createTextSubmission</a></li><li data-type='method'><a href="api.course.assignment.html#createURLSubmission">createURLSubmission</a></li><li data-type='method'><a href="api.course.assignment.html#delete">delete</a></li><li data-type='method'><a href="api.course.assignment.html#deleteOverride">deleteOverride</a></li><li data-type='method'><a href="api.course.assignment.html#get">get</a></li><li data-type='method'><a href="api.course.assignment.html#getOverride">getOverride</a></li><li data-type='method'><a href="api.course.assignment.html#getSubmission">getSubmission</a></li><li data-type='method'><a href="api.course.assignment.html#list">list</a></li><li data-type='method'><a href="api.course.assignment.html#listAllSubmissions">listAllSubmissions</a></li><li data-type='method'><a href="api.course.assignment.html#listGradeableStudents">listGradeableStudents</a></li><li data-type='method'><a href="api.course.assignment.html#listOverrides">listOverrides</a></li><li data-type='method'><a href="api.course.assignment.html#listSubmissions">listSubmissions</a></li><li data-type='method'><a href="api.course.assignment.html#update">update</a></li><li data-type='method'><a href="api.course.assignment.html#updateGrade">updateGrade</a></li><li data-type='method'><a href="api.course.assignment.html#updateGrades">updateGrades</a></li><li data-type='method'><a href="api.course.assignment.html#updateOverride">updateOverride</a></li></ul></li><li><a href="api.course.assignmentGroup.html">api.course.assignmentGroup</a><ul class='methods'><li data-type='method'><a href="api.course.assignmentGroup.html#create">create</a></li><li data-type='method'><a href="api.course.assignmentGroup.html#delete">delete</a></li><li data-type='method'><a href="api.course.assignmentGroup.html#get">get</a></li><li data-type='method'><a href="api.course.assignmentGroup.html#list">list</a></li><li data-type='method'><a href="api.course.assignmentGroup.html#update">update</a></li></ul></li><li><a href="api.course.discussionTopic.html">api.course.discussionTopic</a><ul class='methods'><li data-type='method'><a href="api.course.discussionTopic.html#create">create</a></li><li data-type='method'><a href="api.course.discussionTopic.html#delete">delete</a></li><li data-type='method'><a href="api.course.discussionTopic.html#list">list</a></li><li data-type='method'><a href="api.course.discussionTopic.html#listEntries">listEntries</a></li><li data-type='method'><a href="api.course.discussionTopic.html#updatePublishState">updatePublishState</a></li></ul></li><li><a href="api.course.file.html">api.course.file</a><ul class='methods'><li data-type='method'><a href="api.course.file.html#list">list</a></li></ul></li><li><a href="api.course.folder.html">api.course.folder</a><ul class='methods'><li data-type='method'><a href="api.course.folder.html#list">list</a></li></ul></li><li><a href="api.course.gradebookColumn.html">api.course.gradebookColumn</a><ul class='methods'><li data-type='method'><a href="api.course.gradebookColumn.html#create">create</a></li><li data-type='method'><a href="api.course.gradebookColumn.html#delete">delete</a></li><li data-type='method'><a href="api.course.gradebookColumn.html#get">get</a></li><li data-type='method'><a href="api.course.gradebookColumn.html#list">list</a></li><li data-type='method'><a href="api.course.gradebookColumn.html#listEntries">listEntries</a></li><li data-type='method'><a href="api.course.gradebookColumn.html#update">update</a></li><li data-type='method'><a href="api.course.gradebookColumn.html#updateEntries">updateEntries</a></li><li data-type='method'><a href="api.course.gradebookColumn.html#updateEntry">updateEntry</a></li></ul></li><li><a href="api.course.group.html">api.course.group</a><ul class='methods'><li data-type='method'><a href="api.course.group.html#create">create</a></li><li data-type='method'><a href="api.course.group.html#delete">delete</a></li><li data-type='method'><a href="api.course.group.html#get">get</a></li><li data-type='method'><a href="api.course.group.html#listUsers">listUsers</a></li><li data-type='method'><a href="api.course.group.html#updateMembers">updateMembers</a></li></ul></li><li><a href="api.course.groupSet.html">api.course.groupSet</a><ul class='methods'><li data-type='method'><a href="api.course.groupSet.html#create">create</a></li><li data-type='method'><a href="api.course.groupSet.html#delete">delete</a></li><li data-type='method'><a href="api.course.groupSet.html#get">get</a></li><li data-type='method'><a href="api.course.groupSet.html#list">list</a></li><li data-type='method'><a href="api.course.groupSet.html#listGroups">listGroups</a></li></ul></li><li><a href="api.course.module.html">api.course.module</a><ul class='methods'><li data-type='method'><a href="api.course.module.html#list">list</a></li></ul></li><li><a href="api.course.navMenuItem.html">api.course.navMenuItem</a><ul class='methods'><li data-type='method'><a href="api.course.navMenuItem.html#list">list</a></li><li data-type='method'><a href="api.course.navMenuItem.html#update">update</a></li></ul></li><li><a href="api.course.page.html">api.course.page</a><ul class='methods'><li data-type='method'><a href="api.course.page.html#create">create</a></li><li data-type='method'><a href="api.course.page.html#delete">delete</a></li><li data-type='method'><a href="api.course.page.html#get">get</a></li><li data-type='method'><a href="api.course.page.html#list">list</a></li><li data-type='method'><a href="api.course.page.html#update">update</a></li></ul></li><li><a href="api.course.quiz.html">api.course.quiz</a><ul class='methods'><li data-type='method'><a href="api.course.quiz.html#create">create</a></li><li data-type='method'><a href="api.course.quiz.html#createEssayQuestion">createEssayQuestion</a></li><li data-type='method'><a href="api.course.quiz.html#createMultipleChoiceQuestion">createMultipleChoiceQuestion</a></li><li data-type='method'><a href="api.course.quiz.html#createShortAnswerQuestion">createShortAnswerQuestion</a></li><li data-type='method'><a href="api.course.quiz.html#createSubmission">createSubmission</a></li><li data-type='method'><a href="api.course.quiz.html#delete">delete</a></li><li data-type='method'><a href="api.course.quiz.html#get">get</a></li><li data-type='method'><a href="api.course.quiz.html#getQuizStudentReport">getQuizStudentReport</a></li><li data-type='method'><a href="api.course.quiz.html#getSubmission">getSubmission</a></li><li data-type='method'><a href="api.course.quiz.html#list">list</a></li><li data-type='method'><a href="api.course.quiz.html#listQuestions">listQuestions</a></li><li data-type='method'><a href="api.course.quiz.html#listSubmissions">listSubmissions</a></li><li data-type='method'><a href="api.course.quiz.html#update">update</a></li><li data-type='method'><a href="api.course.quiz.html#updateQuestionGrades">updateQuestionGrades</a></li></ul></li><li><a href="api.course.rubric.html">api.course.rubric</a><ul class='methods'><li data-type='method'><a href="api.course.rubric.html#createFreeFormGradingRubricInAssignment">createFreeFormGradingRubricInAssignment</a></li><li data-type='method'><a href="api.course.rubric.html#get">get</a></li><li data-type='method'><a href="api.course.rubric.html#list">list</a></li></ul></li><li><a href="api.course.section.html">api.course.section</a><ul class='methods'><li data-type='method'><a href="api.course.section.html#get">get</a></li><li data-type='method'><a href="api.course.section.html#list">list</a></li></ul></li><li><a href="api.enrollmentTerm.html">api.enrollmentTerm</a></li><li><a href="api.other.html">api.other</a><ul class='methods'><li data-type='method'><a href="api.other.html#endpoint">endpoint</a></li></ul></li><li><a href="api.user.html">api.user</a><ul class='methods'><li data-type='method'><a href="api.user.html#listCourses">listCourses</a></li><li data-type='method'><a href="api.user.html#listEmails">listEmails</a></li><li data-type='method'><a href="api.user.html#search">search</a></li></ul></li><li><a href="api.user.self.html">api.user.self</a><ul class='methods'><li data-type='method'><a href="api.user.self.html#getProfile">getProfile</a></li><li data-type='method'><a href="api.user.self.html#listCourses">listCourses</a></li></ul></li></ul><h3>Global</h3><ul><li><a href="global.html#DateHandlingType">DateHandlingType</a></li><li><a href="global.html#dayOfWeekToNumber">dayOfWeekToNumber</a></li></ul> </nav> <div id="main"> <section> <header> <h2> <span class="ancestors"><a href="api.course.html">.course</a>.</span> app </h2> </header> <article> <div class="container-overview"> <dl class="details"> <dt class="tag-source">Source:</dt> <dd class="tag-source"><ul class="dummy"><li> <a href="ECatCourse_ECatApp.js.html">ECatCourse/ECatApp.js</a>, <a href="ECatCourse_ECatApp.js.html#line2">line 2</a> </li></ul></dd> </dl> <div class="description usertext">Functions for interacting with external LTI apps within courses</div> </div> <h3 class="subsection-title">Methods</h3> <h4 class="name" id="addByClientId"><span class="type-signature">(async) </span>addByClientId<span class="signature">(opts, config<span class="signature-attributes">opt</span>)</span><span class="type-signature"> &rarr; {Promise.&lt;CanvasExternalTool>}</span></h4> <dl class="details"> <dt class="tag-source">Source:</dt> <dd class="tag-source"><ul class="dummy"><li> <a href="ECatCourse_ECatApp.js.html">ECatCourse/ECatApp.js</a>, <a href="ECatCourse_ECatApp.js.html#line179">line 179</a> </li></ul></dd> <dt class="tag-author">Author:</dt> <dd class="tag-author"> <ul> <li>Gabe Abrams</li> </ul> </dd> </dl> <div class="description usertext"> Adds an LTi app by its clientId to a Canvas course </div> <h5>Parameters:</h5> <table class="params"> <thead> <tr> <th>Name</th> <th>Type</th> <th>Attributes</th> <th class="last">Description</th> </tr> </thead> <tbody> <tr> <td class="name"><code>opts</code></td> <td class="type"> <span class="param-type">object</span> </td> <td class="attributes"> </td> <td class="description last">object containing all arguments <h6>Properties</h6> <table class="params"> <thead> <tr> <th>Name</th> <th>Type</th> <th>Attributes</th> <th>Default</th> <th class="last">Description</th> </tr> </thead> <tbody> <tr> <td class="name"><code>clientId</code></td> <td class="type"> <span class="param-type">string</span> </td> <td class="attributes"> </td> <td class="default"> </td> <td class="description last">the client id of the app that is associated with the Canvas instance containing the course of interest</td> </tr> <tr> <td class="name"><code>courseId</code></td> <td class="type"> <span class="param-type">number</span> </td> <td class="attributes"> &lt;optional><br> </td> <td class="default"> <code>default course id</code> </td> <td class="description last">Canvas course Id to install into</td> </tr> </tbody> </table> </td> </tr> <tr> <td class="name"><code>config</code></td> <td class="type"> <span class="param-type">APIConfig</span> </td> <td class="attributes"> &lt;optional><br> </td> <td class="description last">custom configuration for this specific endpoint call (overwrites defaults that were included when api was initialized)</td> </tr> </tbody> </table> <h5>Returns:</h5> <div class="param-desc"> Canvas external tool <a href="https://canvas.instructure.com/doc/api/external_tools.html#method.external_tools.show">https://canvas.instructure.com/doc/api/external_tools.html#method.external_tools.show</a> </div> <dl class="param-type"> <dt> Type </dt> <dd> <span class="param-type">Promise.&lt;CanvasExternalTool></span> </dd> </dl> <h4 class="name" id="addByXML"><span class="type-signature">(async) </span>addByXML<span class="signature">(opts, config<span class="signature-attributes">opt</span>)</span><span class="type-signature"> &rarr; {Promise.&lt;CanvasExternalTool>}</span></h4> <dl class="details"> <dt class="tag-source">Source:</dt> <dd class="tag-source"><ul class="dummy"><li> <a href="ECatCourse_ECatApp.js.html">ECatCourse/ECatApp.js</a>, <a href="ECatCourse_ECatApp.js.html#line139">line 139</a> </li></ul></dd> <dt class="tag-author">Author:</dt> <dd class="tag-author"> <ul> <li>Gabe Abrams</li> </ul> </dd> </dl> <div class="description usertext"> Adds an LTi app by its XML to a Canvas course </div> <h5>Parameters:</h5> <table class="params"> <thead> <tr> <th>Name</th> <th>Type</th> <th>Attributes</th> <th class="last">Description</th> </tr> </thead> <tbody> <tr> <td class="name"><code>opts</code></td> <td class="type"> <span class="param-type">object</span> </td> <td class="attributes"> </td> <td class="description last">object containing all arguments <h6>Properties</h6> <table class="params"> <thead> <tr> <th>Name</th> <th>Type</th> <th>Attributes</th> <th>Default</th> <th class="last">Description</th> </tr> </thead> <tbody> <tr> <td class="name"><code>name</code></td> <td class="type"> <span class="param-type">string</span> </td> <td class="attributes"> </td> <td class="default"> </td> <td class="description last">The app name (for settings app list)</td> </tr> <tr> <td class="name"><code>key</code></td> <td class="type"> <span class="param-type">string</span> </td> <td class="attributes"> </td> <td class="default"> </td> <td class="description last">Installation consumer key</td> </tr> <tr> <td class="name"><code>secret</code></td> <td class="type"> <span class="param-type">string</span> </td> <td class="attributes"> </td> <td class="default"> </td> <td class="description last">Installation consumer secret</td> </tr> <tr> <td class="name"><code>xml</code></td> <td class="type"> <span class="param-type">string</span> </td> <td class="attributes"> </td> <td class="default"> </td> <td class="description last">XML configuration file, standard LTI format</td> </tr> <tr> <td class="name"><code>description</code></td> <td class="type"> <span class="param-type">string</span> </td> <td class="attributes"> </td> <td class="default"> </td> <td class="description last">A human-readable description of the app</td> </tr> <tr> <td class="name"><code>courseId</code></td> <td class="type"> <span class="param-type">number</span> </td> <td class="attributes"> &lt;optional><br> </td> <td class="default"> <code>default course id</code> </td> <td class="description last">Canvas course Id to install into</td> </tr> </tbody> </table> </td> </tr> <tr> <td class="name"><code>config</code></td> <td class="type"> <span class="param-type">APIConfig</span> </td> <td class="attributes"> &lt;optional><br> </td> <td class="description last">custom configuration for this specific endpoint call (overwrites defaults that were included when api was initialized)</td> </tr> </tbody> </table> <h5>Returns:</h5> <div class="param-desc"> Canvas external tool <a href="https://canvas.instructure.com/doc/api/external_tools.html#method.external_tools.show">https://canvas.instructure.com/doc/api/external_tools.html#method.external_tools.show</a> </div> <dl class="param-type"> <dt> Type </dt> <dd> <span class="param-type">Promise.&lt;CanvasExternalTool></span> </dd> </dl> <h4 class="name" id="addRedirect"><span class="type-signature">(async) </span>addRedirect<span class="signature">(opts, config<span class="signature-attributes">opt</span>)</span><span class="type-signature"> &rarr; {Promise.&lt;CanvasExternalTool>}</span></h4> <dl class="details"> <dt class="tag-source">Source:</dt> <dd class="tag-source"><ul class="dummy"><li> <a href="ECatCourse_ECatApp.js.html">ECatCourse/ECatApp.js</a>, <a href="ECatCourse_ECatApp.js.html#line211">line 211</a> </li></ul></dd> <dt class="tag-author">Author:</dt> <dd class="tag-author"> <ul> <li>Gabe Abrams</li> </ul> </dd> </dl> <div class="description usertext"> Add a redirect app to the navigation menu </div> <h5>Parameters:</h5> <table class="params"> <thead> <tr> <th>Name</th> <th>Type</th> <th>Attributes</th> <th class="last">Description</th> </tr> </thead> <tbody> <tr> <td class="name"><code>opts</code></td> <td class="type"> <span class="param-type">object</span> </td> <td class="attributes"> </td> <td class="description last">object containing all arguments <h6>Properties</h6> <table class="params"> <thead> <tr> <th>Name</th> <th>Type</th> <th>Attributes</th> <th>Default</th> <th class="last">Description</th> </tr> </thead> <tbody> <tr> <td class="name"><code>name</code></td> <td class="type"> <span class="param-type">string</span> </td> <td class="attributes"> </td> <td class="default"> </td> <td class="description last">the name of the app as it shows up in the nav menu</td> </tr> <tr> <td class="name"><code>url</code></td> <td class="type"> <span class="param-type">string</span> </td> <td class="attributes"> </td> <td class="default"> </td> <td class="description last">the url to direct the course to when they click the redirect app</td> </tr> <tr> <td class="name"><code>hiddenFromStudents</code></td> <td class="type"> <span class="param-type">boolean</span> </td> <td class="attributes"> &lt;optional><br> </td> <td class="default"> </td> <td class="description last">if true, hide the link from students</td> </tr> <tr> <td class="name"><code>dontOpenInNewTab</code></td> <td class="type"> <span class="param-type">boolean</span> </td> <td class="attributes"> &lt;optional><br> </td> <td class="default"> </td> <td class="description last">if true, redirect does not open in another tab</td> </tr> <tr> <td class="name"><code>courseId</code></td> <td class="type"> <span class="param-type">number</span> </td> <td class="attributes"> &lt;optional><br> </td> <td class="default"> <code>default course id</code> </td> <td class="description last">Canvas course Id to install into</td> </tr> </tbody> </table> </td> </tr> <tr> <td class="name"><code>config</code></td> <td class="type"> <span class="param-type">APIConfig</span> </td> <td class="attributes"> &lt;optional><br> </td> <td class="description last">custom configuration for this specific endpoint call (overwrites defaults that were included when api was initialized)</td> </tr> </tbody> </table> <h5>Returns:</h5> <div class="param-desc"> Canvas external tool <a href="https://canvas.instructure.com/doc/api/external_tools.html#method.external_tools.show">https://canvas.instructure.com/doc/api/external_tools.html#method.external_tools.show</a> </div> <dl class="param-type"> <dt> Type </dt> <dd> <span class="param-type">Promise.&lt;CanvasExternalTool></span> </dd> </dl> <h4 class="name" id="get"><span class="type-signature">(async) </span>get<span class="signature">(opts, config<span class="signature-attributes">opt</span>)</span><span class="type-signature"> &rarr; {Promise.&lt;CanvasExternalTool>}</span></h4> <dl class="details"> <dt class="tag-source">Source:</dt> <dd class="tag-source"><ul class="dummy"><li> <a href="ECatCourse_ECatApp.js.html">ECatCourse/ECatApp.js</a>, <a href="ECatCourse_ECatApp.js.html#line112">line 112</a> </li></ul></dd> <dt class="tag-author">Author:</dt> <dd class="tag-author"> <ul> <li>Gabe Abrams</li> </ul> </dd> </dl> <div class="description usertext"> Gets info on a single LTI tool </div> <h5>Parameters:</h5> <table class="params"> <thead> <tr> <th>Name</th> <th>Type</th> <th>Attributes</th> <th class="last">Description</th> </tr> </thead> <tbody> <tr> <td class="name"><code>opts</code></td> <td class="type"> <span class="param-type">object</span> </td> <td class="attributes"> </td> <td class="description last">object containing all arguments <h6>Properties</h6> <table class="params"> <thead> <tr> <th>Name</th> <th>Type</th> <th>Attributes</th> <th>Default</th> <th class="last">Description</th> </tr> </thead> <tbody> <tr> <td class="name"><code>appId</code></td> <td class="type"> <span class="param-type">number</span> </td> <td class="attributes"> </td> <td class="default"> </td> <td class="description last">The LTI app Id to get</td> </tr> <tr> <td class="name"><code>courseId</code></td> <td class="type"> <span class="param-type">number</span> </td> <td class="attributes"> &lt;optional><br> </td> <td class="default"> <code>default course id</code> </td> <td class="description last">Canvas course Id</td> </tr> </tbody> </table> </td> </tr> <tr> <td class="name"><code>config</code></td> <td class="type"> <span class="param-type">APIConfig</span> </td> <td class="attributes"> &lt;optional><br> </td> <td class="description last">custom configuration for this specific endpoint call (overwrites defaults that were included when api was initialized)</td> </tr> </tbody> </table> <h5>Returns:</h5> <div class="param-desc"> Canvas external tool <a href="https://canvas.instructure.com/doc/api/external_tools.html#method.external_tools.show">https://canvas.instructure.com/doc/api/external_tools.html#method.external_tools.show</a> </div> <dl class="param-type"> <dt> Type </dt> <dd> <span class="param-type">Promise.&lt;CanvasExternalTool></span> </dd> </dl> <h4 class="name" id="getAssignmentLaunchURL"><span class="type-signature">(async) </span>getAssignmentLaunchURL<span class="signature">(opts, config<span class="signature-attributes">opt</span>)</span><span class="type-signature"> &rarr; {Promise.&lt;string>}</span></h4> <dl class="details"> <dt class="tag-source">Source:</dt> <dd class="tag-source"><ul class="dummy"><li> <a href="ECatCourse_ECatApp.js.html">ECatCourse/ECatApp.js</a>, <a href="ECatCourse_ECatApp.js.html#line535">line 535</a> </li></ul></dd> <dt class="tag-author">Author:</dt> <dd class="tag-author"> <ul> <li>Gabe Abrams</li> </ul> </dd> </dl> <div class="description usertext"> Gets a sessionless navigation LTI launch URL </div> <h5>Parameters:</h5> <table class="params"> <thead> <tr> <th>Name</th> <th>Type</th> <th>Attributes</th> <th class="last">Description</th> </tr> </thead> <tbody> <tr> <td class="name"><code>opts</code></td> <td class="type"> <span class="param-type">object</span> </td> <td class="attributes"> </td> <td class="description last">object containing all arguments <h6>Properties</h6> <table class="params"> <thead> <tr> <th>Name</th> <th>Type</th> <th>Attributes</th> <th>Default</th> <th class="last">Description</th> </tr> </thead> <tbody> <tr> <td class="name"><code>appId</code></td> <td class="type"> <span class="param-type">number</span> </td> <td class="attributes"> </td> <td class="default"> </td> <td class="description last">The LTI app Id to get a launch URL for</td> </tr> <tr> <td class="name"><code>assignmentId</code></td> <td class="type"> <span class="param-type">number</span> </td> <td class="attributes"> </td> <td class="default"> </td> <td class="description last">the Canvas assignment id to launch</td> </tr> <tr> <td class="name"><code>courseId</code></td> <td class="type"> <span class="param-type">number</span> </td> <td class="attributes"> &lt;optional><br> </td> <td class="default"> <code>default course id</code> </td> <td class="description last">Canvas course Id that holds the app from</td> </tr> </tbody> </table> </td> </tr> <tr> <td class="name"><code>config</code></td> <td class="type"> <span class="param-type">APIConfig</span> </td> <td class="attributes"> &lt;optional><br> </td> <td class="description last">custom configuration for this specific endpoint call (overwrites defaults that were included when api was initialized)</td> </tr> </tbody> </table> <h5>Returns:</h5> <div class="param-desc"> launch url </div> <dl class="param-type"> <dt> Type </dt> <dd> <span class="param-type">Promise.&lt;string></span> </dd> </dl> <h4 class="name" id="getMetadata"><span class="type-signature">(async) </span>getMetadata<span class="signature">(opts, config<span class="signature-attributes">opt</span>)</span><span class="type-signature"> &rarr; {Promise.&lt;object>}</span></h4> <dl class="details"> <dt class="tag-source">Source:</dt> <dd class="tag-source"><ul class="dummy"><li> <a href="ECatCourse_ECatApp.js.html">ECatCourse/ECatApp.js</a>, <a href="ECatCourse_ECatApp.js.html#line341">line 341</a> </li></ul></dd> <dt class="tag-author">Author:</dt> <dd class="tag-author"> <ul> <li>Gabe Abrams</li> </ul> </dd> </dl> <div class="description usertext"> Gets the metadata for an LTI app in a course. Note: this endpoint requires that the app have a custom parameter called 'metadata_id' with an identifier that we will use to refer to the metadata. If each installation of an app will have its own metadata, each installation should have a different metadata_id. If all installations share the same metadata, they should all have the same metadata_id. When getting metadata, we return the metadata for the first app we find that has this metadata_id. Also note that the variable is 'metadata_id' all lowercase because launch params are made lowercase. </div> <h5>Parameters:</h5> <table class="params"> <thead> <tr> <th>Name</th> <th>Type</th> <th>Attributes</th> <th class="last">Description</th> </tr> </thead> <tbody> <tr> <td class="name"><code>opts</code></td> <td class="type"> <span class="param-type">object</span> </td> <td class="attributes"> </td> <td class="description last">object containing all arguments <h6>Properties</h6> <table class="params"> <thead> <tr> <th>Name</th> <th>Type</th> <th>Attributes</th> <th>Default</th> <th class="last">Description</th> </tr> </thead> <tbody> <tr> <td class="name"><code>metadata_id</code></td> <td class="type"> <span class="param-type">number</span> </td> <td class="attributes"> </td> <td class="default"> </td> <td class="description last">metadata identifier (see endpoint description)</td> </tr> <tr> <td class="name"><code>courseId</code></td> <td class="type"> <span class="param-type">number</span> </td> <td class="attributes"> &lt;optional><br> </td> <td class="default"> <code>default course id</code> </td> <td class="description last">Canvas course Id that holds the app</td> </tr> </tbody> </table> </td> </tr> <tr> <td class="name"><code>config</code></td> <td class="type"> <span class="param-type">APIConfig</span> </td> <td class="attributes"> &lt;optional><br> </td> <td class="description last">custom configuration for this specific endpoint call (overwrites defaults that were included when api was initialized)</td> </tr> </tbody> </table> <h5>Returns:</h5> <div class="param-desc"> the metadata for the first app that has the given metadata_id </div> <dl class="param-type"> <dt> Type </dt> <dd> <span class="param-type">Promise.&lt;object></span> </dd> </dl> <h4 class="name" id="getNavLaunchURL"><span class="type-signature">(async) </span>getNavLaunchURL<span class="signature">(opts, config<span class="signature-attributes">opt</span>)</span><span class="type-signature"> &rarr; {Promise.&lt;string>}</span></h4> <dl class="details"> <dt class="tag-source">Source:</dt> <dd class="tag-source"><ul class="dummy"><li> <a href="ECatCourse_ECatApp.js.html">ECatCourse/ECatApp.js</a>, <a href="ECatCourse_ECatApp.js.html#line498">line 498</a> </li></ul></dd> <dt class="tag-author">Author:</dt> <dd class="tag-author"> <ul> <li>Gabe Abrams</li> </ul> </dd> </dl> <div class="description usertext"> Gets a sessionless navigation LTI launch URL </div> <h5>Parameters:</h5> <table class="params"> <thead> <tr> <th>Name</th> <th>Type</th> <th>Attributes</th> <th class="last">Description</th> </tr> </thead> <tbody> <tr> <td class="name"><code>opts</code></td> <td class="type"> <span class="param-type">object</span> </td> <td class="attributes"> </td> <td class="description last">object containing all arguments <h6>Properties</h6> <table class="params"> <thead> <tr> <th>Name</th> <th>Type</th> <th>Attributes</th> <th>Default</th> <th class="last">Description</th> </tr> </thead> <tbody> <tr> <td class="name"><code>appId</code></td> <td class="type"> <span class="param-type">number</span> </td> <td class="attributes"> </td> <td class="default"> </td> <td class="description last">The LTI app Id to get a launch URL for</td> </tr> <tr> <td class="name"><code>courseId</code></td> <td class="type"> <span class="param-type">number</span> </td> <td class="attributes"> &lt;optional><br> </td> <td class="default">