version 1.21, 2024/02/27 04:04:06
|
version 1.22, 2024/11/21 07:26:04
|
Line 34 use Digest::SHA;
|
Line 34 use Digest::SHA;
|
use Digest::MD5 qw(md5_hex); |
use Digest::MD5 qw(md5_hex); |
use Encode; |
use Encode; |
use UUID::Tiny ':std'; |
use UUID::Tiny ':std'; |
|
use HTTP::Status; |
use Apache::lonnet; |
use Apache::lonnet; |
use Apache::loncommon; |
use Apache::loncommon; |
use Apache::loncoursedata; |
use Apache::loncoursedata; |
Line 758 sub send_grade {
|
Line 759 sub send_grade {
|
if ($sigmethod eq '') { |
if ($sigmethod eq '') { |
$sigmethod = 'HMAC-SHA1'; |
$sigmethod = 'HMAC-SHA1'; |
} |
} |
my $request; |
my ($request,$sendit,$respcode,$result); |
if ($msgformat eq '1.0') { |
if ($msgformat eq '1.0') { |
my $date = &Apache::loncommon::utc_string(time); |
my $date = &Apache::loncommon::utc_string(time); |
my %ltiparams = ( |
my %ltiparams = ( |
Line 785 sub send_grade {
|
Line 786 sub send_grade {
|
? join("&$name=", map {escape($_) } @{$hashref->{$_}}) |
? join("&$name=", map {escape($_) } @{$hashref->{$_}}) |
: &escape($hashref->{$_}) ); |
: &escape($hashref->{$_}) ); |
} keys(%{$hashref}))); |
} keys(%{$hashref}))); |
#FIXME Need to handle case where passback failed. |
$sendit = 1; |
} |
} |
} else { |
} else { |
srand( time() ^ ($$ + ($$ << 15)) ); # Seed rand. |
srand( time() ^ ($$ + ($$ << 15)) ); # Seed rand. |
Line 842 END
|
Line 843 END
|
], |
], |
$gradexml, |
$gradexml, |
); |
); |
my $response = &LONCAPA::LWPReq::makerequest('',$request,'','',10); |
$sendit = 1; |
my $message=$response->status_line; |
|
#FIXME Handle case where pass back of score to LTI Consumer failed. |
|
} |
} |
} |
} |
|
if ($sendit) { |
|
my $response = &LONCAPA::LWPReq::makerequest('',$request,'','',10); |
|
my $message=$response->status_line; |
|
$respcode = $response->code; |
|
$result = HTTP::Status::status_message($respcode); |
|
} |
|
return ($sendit,$score,$respcode,$result); |
} |
} |
|
|
sub setup_logout_callback { |
sub setup_logout_callback { |