Skip to content

Commit

Permalink
Merge branch 'feature/useResourceTitleFromAGS' into develop
Browse files Browse the repository at this point in the history
  • Loading branch information
Colin McFadden committed May 14, 2024
2 parents 99c5512 + 8ed442a commit 02f1587
Showing 1 changed file with 25 additions and 8 deletions.
33 changes: 25 additions & 8 deletions app/Http/Controllers/LTI13Handler.php
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@
use Packback\Lti1p3\LtiException;
use \App\LTI13ResourceLink;
use \App\Library\LTI13Processor;
use Log;

class LTI13Handler extends Controller
{
Expand Down Expand Up @@ -98,6 +99,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 +164,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 +196,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 +213,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 +226,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 +261,24 @@ 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["resourceLinkId"] == $resourceData["id"]) {
Log::error("Resource data title was empty, so we're using the line item title", ["resourceData"=>$resourceData, "lineItem"=>$lineItem]);
$resourceData["title"] = $lineItem["label"];
return $resourceData;
}
}
return $resourceData;

}

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

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

0 comments on commit 02f1587

Please sign in to comment.