Skip to content

Commit

Permalink
add hack for loading resource title from AGS
Browse files Browse the repository at this point in the history
  • Loading branch information
Colin McFadden committed May 14, 2024
1 parent 99c5512 commit dbc3b5a
Showing 1 changed file with 21 additions and 8 deletions.
29 changes: 21 additions & 8 deletions app/Http/Controllers/LTI13Handler.php
Original file line number Diff line number Diff line change
Expand Up @@ -98,6 +98,7 @@ public function launch() {
$contextData = $launchData["https://purl.imsglobal.org/spec/lti/claim/context"];
$endpointData = $launchData["https://purl.imsglobal.org/spec/lti-ags/claim/endpoint"];
$resourceData = $launchData["https://purl.imsglobal.org/spec/lti/claim/resource_link"];

$presentationData = $launchData["https://purl.imsglobal.org/spec/lti/claim/launch_presentation"];

$returnURL = explode("external_content", $presentationData["return_url"])[0];
Expand Down Expand Up @@ -162,7 +163,7 @@ public function launch() {
$chime->lti_return_url = $returnURL;
$chime->users()->syncWithoutDetaching([Auth::user()->id=> ['permission_number' => 300]]);
$chime->save();

$resourceData = $this->fixResourceDataUsingAGS($chime, $resourceData);
// if they've launched from an assignment, we can get them to the right folder
if(isset($endpointData["lineitem"]) && $chime->lti_grade_mode == LTI13ResourceLink::LTI_GRADE_MODE_MULTIPLE_GRADES) {

Expand Down Expand Up @@ -194,7 +195,7 @@ public function launch() {
$chime->save();

$similarChimes = $this->getSimilarChimes($chime);

$resourceData = $this->fixResourceDataUsingAGS($chime, $resourceData);
$chime->users()->syncWithoutDetaching([Auth::user()->id=> ['permission_number' => 300]]);
return view("ltiSelectionPrompt", ["ltiLaunch"=>["similar_chimes"=>$similarChimes], "chime"=>$chime, "resource_link_pk"=>null, "lti_resource_title"=>$resourceData["title"], "saveTarget"=>'ltisettings13.update']);
}
Expand All @@ -211,7 +212,7 @@ public function launch() {
$chime->users()->attach(Auth::user(), ['permission_number' => 300]);
;
$similarChimes = $this->getSimilarChimes($chime);

$resourceData = $this->fixResourceDataUsingAGS($chime, $resourceData);
// return \Redirect::to("/chime/" . $chime->id. "/folder/" . $folder->id);
return view("ltiSelectionPrompt", ["ltiLaunch"=>["similar_chimes"=>$similarChimes], "chime"=>$chime , "resource_link_pk"=>null, "lti_resource_title"=>$resourceData["title"], "saveTarget"=>'ltisettings13.update']);
}
Expand All @@ -224,12 +225,9 @@ public function launch() {
]);
}
else {
$chime->users()->syncWithoutDetaching([Auth::user()->id=> ['permission_number' => 100]]);
$chime->users()->syncWithoutDetaching([Auth::user()->id=> ['permission_number' => 100]]);
}

$chime->lti13_resource_link_id = $resourceLink->id;
$chime->save();

$resourceData = $this->fixResourceDataUsingAGS($chime, $resourceData);
$folderId = null;
$folder = null;
$courseHasNonLTIFolders = false;
Expand Down Expand Up @@ -262,6 +260,21 @@ public function launch() {

}

private function fixResourceDataUsingAGS(Chime $chime, array $resourceData) {
if(isset($resourceData['title']) && $resourceData['title'] != "") {
return $resourceData;
}
$ags = LTI13Processor::getAGS($chime);
$lineItems = $ags->getLineItems();
foreach($lineItems as $lineItem) {
if($lineItem["id"] == $resourceData["id"]) {
$resourceData["title"] = $lineItem["label"];
return $resourceData;
}
}

}

public function saveLTISettings(Request $req, Chime $chime) {

$chime->fill($req->all());
Expand Down

0 comments on commit dbc3b5a

Please sign in to comment.