diff --git a/Dockerfile b/Dockerfile
index 293cd9fdb8..fcb98918ea 100644
--- a/Dockerfile
+++ b/Dockerfile
@@ -140,8 +140,6 @@ RUN apt-get update \
libpath-tiny-perl \
libperl-critic-perl \
libphp-serialization-perl \
- libpod-wsdl-perl \
- libsoap-lite-perl \
libsql-abstract-perl \
libssl-dev \
libstring-shellquote-perl \
diff --git a/DockerfileStage1 b/DockerfileStage1
index 2ce0d6af67..d6ab207151 100644
--- a/DockerfileStage1
+++ b/DockerfileStage1
@@ -101,8 +101,6 @@ RUN apt-get update \
libpath-tiny-perl \
libperl-critic-perl \
libphp-serialization-perl \
- libpod-wsdl-perl \
- libsoap-lite-perl \
libsql-abstract-perl \
libssl-dev \
libstring-shellquote-perl \
diff --git a/bin/check_modules.pl b/bin/check_modules.pl
index 661e8e7331..0ea9acf800 100755
--- a/bin/check_modules.pl
+++ b/bin/check_modules.pl
@@ -427,17 +427,6 @@ =head1 DESCRIPTION
rhel => 'perl-Pod-Usage'
}
},
- 'Pod::WSDL' => {
- package => {
- ubuntu => 'libpod-wsdl-perl'
- }
- },
- 'SOAP::Lite' => {
- package => {
- ubuntu => 'libsoap-lite-perl',
- rhel => 'perl-SOAP-Lite'
- }
- },
'SQL::Abstract' => {
minversion => '2',
package => {
diff --git a/conf/webwork2.mojolicious.dist.yml b/conf/webwork2.mojolicious.dist.yml
index 718b9dcf1a..c96103c411 100644
--- a/conf/webwork2.mojolicious.dist.yml
+++ b/conf/webwork2.mojolicious.dist.yml
@@ -38,11 +38,6 @@ JSON_ERROR_LOG: 0
# does not forward the server root location.
#server_root_url_redirect: https://mysite.edu/mypage.html
-# Uncomment the line below to use the WebworkSOAP handlers. Make sure that you
-# change the value to something more secure. Note that it must consist entirely
-# of digits.
-#soap_authen_key: 123456789123456789
-
# If a remote site is using this WW server to process WW problems and embed them
# into web pages, the web browser might not permit the WW problems to be
# displayed, as it violates security policy to mix content from different
diff --git a/lib/Mojolicious/WeBWorK.pm b/lib/Mojolicious/WeBWorK.pm
index 6a026a9c3d..e009d9fcad 100644
--- a/lib/Mojolicious/WeBWorK.pm
+++ b/lib/Mojolicious/WeBWorK.pm
@@ -228,23 +228,6 @@ sub startup ($app) {
}
);
- if ($config->{soap_authen_key}) {
- # Only allow an authen key that consists entirely of digits. The WebworkSOAP module uses a numeric != for
- # comparison, and in perl all strings containing alphabetic characters are numerically equal. So if this is not
- # numeric all keys that are passed in will succeed in authentication. Very dangerous!
- if ($config->{soap_authen_key} =~ /^\d*$/) {
- $app->log->info('SOAP endpoints enabled');
- $WeBWorK::SeedCE{soap_authen_key} = $config->{soap_authen_key};
-
- push(@{ $r->namespaces }, 'WebworkSOAP');
- $r->any('/webwork2_wsdl')->to('SOAP#wsdl');
- $r->post('/webwork2_rpc')->to('SOAP#dispatch');
- } else {
- $app->log->info(qq{Invalid soap_authen_key "$config->{soap_authen_key}". }
- . 'It must consist entirely of digits. SOAP endpoints NOT enabled.');
- }
- }
-
# Letsencrypt renewal route.
if ($config->{enable_certbot_webroot_routes}) {
$r->any(
diff --git a/lib/WebworkSOAP.pm b/lib/WebworkSOAP.pm
deleted file mode 100644
index a656a18870..0000000000
--- a/lib/WebworkSOAP.pm
+++ /dev/null
@@ -1,1335 +0,0 @@
-package WebworkSOAP;
-
-use strict;
-
-use Math::Random::Secure qw(irand);
-
-use WeBWorK::Utils::CourseManagement qw(listCourses);
-use WeBWorK::DB;
-use WeBWorK::DB::Utils qw(initializeUserProblem);
-use WeBWorK::CourseEnvironment;
-
-use WebworkSOAP::Classes::GlobalSet;
-use WebworkSOAP::Classes::UserSet;
-use WebworkSOAP::Classes::GlobalProblem;
-use WebworkSOAP::Classes::UserProblem;
-use WebworkSOAP::Classes::User;
-use WebworkSOAP::Classes::Key;
-use WebworkSOAP::Classes::Password;
-use WebworkSOAP::Classes::Permission;
-
-#init
-
-use constant {
- SOAPERROR_MAJOR => 1,
- SOAPERROR_MINOR => 2,
- SOAPERROR_CLASS_NOT_FOUND => 3,
- SOAPERROR_USER_NOT_FOUND => 4,
- SOAPERROR_SET_NOT_FOUND => 5,
- SOAPERROR_PROBLEM_NOT_FOUND => 6,
- SOAPERROR_KEY_NOT_FOUND => 7,
- SOAPERROR_AUTHEN_FAILED => 8
-};
-
-our %SeedCE;
-%WebworkSOAP::SeedCE = %WeBWorK::SeedCE;
-
-sub new {
- my ($self, $authenKey, $courseName) = @_;
- $self = {};
- #Construct Course
- my $ce = eval { WeBWorK::CourseEnvironment->new({ %SeedCE, courseName => $courseName }) };
- $@ and soap_fault_major("Course Environment cannot be constructed.
$@");
- #Authentication Check
- if ($ce->{soap_authen_key} != $authenKey) {
- soap_fault_authen();
- }
- #Construct DB handle
- my $db = eval { WeBWorK::DB->new($ce); };
- $@ and soap_fault_major("Failed to initialize database handle.
$@");
- $self->{db} = $db;
- $self->{ce} = $ce;
- bless $self;
- return $self;
-}
-
-sub array_to_soap_string {
- my @array = @_;
- @array = map { SOAP::Data->type('string', $_) } @array;
- return \@array;
-}
-
-sub soap_fault_authen {
- die SOAP::Fault->faultcode(SOAPERROR_AUTHEN_FAILED)->faultstring("SOAP Webservice Authentication Failed!");
-}
-
-sub soap_fault {
- my ($errorCode, $errorMsg) = @_;
- die SOAP::Fault->faultcode($errorCode)->faultstring($errorMsg);
-}
-
-sub soap_fault_major {
- my ($errorMsg) = @_;
- soap_fault(SOAPERROR_MAJOR, $errorMsg);
-}
-####################################################################################
-#SOAP CALLABLE FUNCTIONS
-####################################################################################
-
-=pod
-
-=begin WSDL
- _RETURN $string Hello World!
-=end WSDL
-
-=cut
-
-sub hello {
- return "Hello world!";
-}
-
-#################################################
-#Course
-#################################################
-
-=pod
-
-=begin WSDL
- _IN authenKey $string
- _RETURN @string
-=end WSDL
-
-=cut
-
-sub list_courses {
- my ($self, $authenKey) = @_;
- my $ce = eval { WeBWorK::CourseEnvironment->new };
- $@ and soap_fault_major("Internal Course Environment cannot be constructed.");
- if ($authenKey != $WebworkSOAP::SeedCE{soap_authen_key}) {
- soap_fault_authen;
- }
- $@ and soap_fault_major("Course Environment cannot be constructed.");
- my @test = listCourses($ce);
- return array_to_soap_string(@test);
-}
-
-=pod
-
-=begin WSDL
- _IN authenKey $string
- _IN courseName $string
- _IN userID $string
- _RETURN $string
-=end WSDL
-
-=cut
-
-sub login_user {
- my ($self, $authenKey, $courseName, $userID) = @_;
- my $soapEnv = new WebworkSOAP($authenKey, $courseName);
- my $newKey;
- my $timestamp = time;
- my @chars = @{ $soapEnv->{ce}->{sessionKeyChars} };
- my $length = $soapEnv->{ce}->{sessionKeyLength};
- $newKey = join("", @chars[ map irand(@chars), 1 .. $length ]);
- my $Key = $soapEnv->{db}->newKey(user_id => $userID, key => $newKey, timestamp => $timestamp);
- eval { $soapEnv->{db}->deleteKey($userID) };
- eval { $soapEnv->{db}->addKey($Key) };
- $@ and soap_fault(SOAPERROR_USER_NOT_FOUND, "User not found.");
- return SOAP::Data->type('string', $newKey);
-}
-
-=pod
-
-=begin WSDL
- _IN authenKey $string
- _IN courseName $string
- _IN userID $string
- _IN setID $string
- _RETURN $string
-=end WSDL
-
-=cut
-
-sub assign_set_to_user {
- my ($self, $authenKey, $courseName, $userID, $setID) = @_;
- my $soapEnv = new WebworkSOAP($authenKey, $courseName);
- my $GlobalSet = eval { $soapEnv->{db}->getGlobalSet($setID) };
- $@ and soap_fault(SOAPERROR_SET_NOT_FOUND, "Set not found.");
- my $setID = $GlobalSet->set_id;
- my $db = $soapEnv->{db};
- my $UserSet = $db->newUserSet;
- $UserSet->user_id($userID);
- $UserSet->set_id($setID);
- my @results;
- my $set_assigned = 0;
- eval { $db->addUserSet($UserSet) };
-
- if ($@) {
- if (WeBWorK::DB::Ex::RecordExists->caught) {
- push @results, "set $setID is already assigned to user $userID.";
- $set_assigned = 1;
- } else {
- die $@;
- }
- }
-
- my @GlobalProblems = grep { defined $_ } $db->getAllGlobalProblems($setID);
- foreach my $GlobalProblem (@GlobalProblems) {
- my $seed = int(rand(2423)) + 36;
- my $UserProblem = $db->newUserProblem;
- $UserProblem->user_id($userID);
- $UserProblem->set_id($GlobalProblem->set_id);
- $UserProblem->problem_id($GlobalProblem->problem_id);
- initializeUserProblem($UserProblem, $seed);
- eval { $db->addUserProblem($UserProblem) };
- }
- return array_to_soap_string(@results); #FIXME WSDL says $string, not @string?
-}
-
-=pod
-
-=begin WSDL
- _IN authenKey $string
- _IN courseName $string
- _IN userIDs @string
- _IN setID $string
- _RETURN @string
-=end WSDL
-
-=cut
-
-sub grade_users_sets {
- my ($self, $authenKey, $courseName, $userIDs, $setID) = @_;
- my $soapEnv = new WebworkSOAP($authenKey, $courseName);
- my @grades;
- #open (LOG, ">>/opt/webwork/tmp_log") or die "Can't open log file";
- #print LOG "\n\nhi there\n\n";
-
- my $db = $soapEnv->{db};
- foreach my $userID (@{$userIDs}) {
- # my @problemData = $soapEnv->{db}->getAllMergedUserProblems($userID,$setID);
- #
- # my $grade = 0;
- # for(my $i=0;$i<@problemData;$i++) {
- # #print LOG "$userID problem Data",join(" ", %{$problemData[$i]}),"\n\n";
- # $grade += ($problemData[$i]->status)*($problemData[$i]->value);
- # #print LOG "grade is $grade\n";
- # }
- #print LOG "grade_users_sets: get user $userID set $setID\n";
- my $grade = get_wwassignment_grade_for_one_user($db, $userID, $setID);
- #print LOG " grade is $grade \n\n";
- push(@grades, $grade);
- }
- #close(LOG);
- return array_to_soap_string(@grades);
-}
-
-=pod
-
-=begin WSDL
- _IN authenKey $string
- _IN courseName $string
- _IN setID $string
- _RETURN $WebworkSOAP::Classes::GlobalSet
-=end WSDL
-
-=cut
-
-sub get_set_data {
- my ($self, $authenKey, $courseName, $setID) = @_;
- my $soapEnv = new WebworkSOAP($authenKey, $courseName);
- my $setData = $soapEnv->{db}->getGlobalSet($setID);
- if (not defined $setData) {
- return -1;
- }
- my $set = new WebworkSOAP::Classes::GlobalSet($setData);
- return $set;
-}
-
-####################################################################
-##FUNCTIONS DIRECTLY MAPPED TO FUNCTIONS IN DB.pm
-####################################################################
-###############################################
-##Password
-###############################################
-
-=pod
-
-=begin WSDL
- _IN authenKey $string
- _IN courseName $string
- _IN record $WebworkSOAP::Classes::Password
- _RETURN $string
-=end WSDL
-
-=cut
-
-sub add_password {
- my ($self, $authenKey, $courseName, $record) = @_;
- my $soapEnv = new WebworkSOAP($authenKey, $courseName);
- my $newPassword = $soapEnv->{db}->newPassword;
- %$newPassword = %$record;
- return SOAP::Data->type('string', $soapEnv->{db}->addPassword($newPassword));
-}
-
-=pod
-
-=begin WSDL
- _IN authenKey $string
- _IN courseName $string
- _IN record $WebworkSOAP::Classes::Password
- _RETURN $string
-=end WSDL
-
-=cut
-
-sub put_password {
- my ($self, $authenKey, $courseName, $record) = @_;
- my $soapEnv = new WebworkSOAP($authenKey, $courseName);
- return SOAP::Data->type('string', $soapEnv->{db}->putPassword($record));
-}
-
-=pod
-
-=begin WSDL
- _IN authenKey $string
- _IN courseName $string
- _RETURN @string
-=end WSDL
-
-=cut
-
-sub list_password {
- my ($self, $authenKey, $courseName) = @_;
- my $soapEnv = new WebworkSOAP($authenKey, $courseName);
- my @tempArray = $soapEnv->{db}->listPasswords;
- return array_to_soap_string(@tempArray);
-}
-
-=pod
-
-=begin WSDL
- _IN authenKey $string
- _IN courseName $string
- _IN userIDs @string
- _RETURN @WebworkSOAP::Classes::Password Array of user objects
-=end WSDL
-
-=cut
-
-sub get_passwords {
- my ($self, $authenKey, $courseName, $userIDs) = @_;
- my $soapEnv = new WebworkSOAP($authenKey, $courseName);
- my @passwordData = $soapEnv->{db}->getPasswords(@$userIDs);
- my @passwords;
- for (my $i = 0; $i < @passwordData; $i++) {
- push(@passwords, new WebworkSOAP::Classes::Password(@passwordData[$i]));
- }
- return \@passwords;
-}
-
-=pod
-
-=begin WSDL
- _IN authenKey $string
- _IN courseName $string
- _IN userID $string
- _RETURN $WebworkSOAP::Classes::Password of names objects.
-=end WSDL
-
-=cut
-
-sub get_password {
- my ($self, $authenKey, $courseName, $userID) = @_;
- my $soapEnv = new WebworkSOAP($authenKey, $courseName);
- my $passwordData = $soapEnv->{db}->getPassword($userID);
- if (not defined $passwordData) {
- return -1;
- }
- my $password = new WebworkSOAP::Classes::Password($passwordData);
- return ($password);
-}
-
-##################################################
-##Permission
-##################################################
-
-=pod
-
-=begin WSDL
- _IN authenKey $string
- _IN courseName $string
- _IN record $WebworkSOAP::Classes::Permission
- _RETURN $string
-=end WSDL
-
-=cut
-
-sub add_permission {
- my ($self, $authenKey, $courseName, $record) = @_;
- my $soapEnv = new WebworkSOAP($authenKey, $courseName);
- my $newPermissionLevel = $soapEnv->{db}->newPermissionLevel;
- %$newPermissionLevel = %$record;
- return SOAP::Data->type('string', $soapEnv->{db}->addPermissionLevel($newPermissionLevel));
-}
-
-=pod
-
-=begin WSDL
- _IN authenKey $string
- _IN courseName $string
- _IN record $WebworkSOAP::Classes::Permission
- _RETURN $string
-=end WSDL
-
-=cut
-
-sub put_permission {
- my ($self, $authenKey, $courseName, $record) = @_;
- my $soapEnv = new WebworkSOAP($authenKey, $courseName);
- my $newPermissionLevel = $soapEnv->{db}->newPermissionLevel;
- %$newPermissionLevel = %$record;
- return SOAP::Data->type('string', $soapEnv->{db}->putPermissionLevel($newPermissionLevel));
-}
-
-=pod
-
-=begin WSDL
- _IN authenKey $string
- _IN courseName $string
- _RETURN @string
-=end WSDL
-
-=cut
-
-sub list_permissions {
- my ($self, $authenKey, $courseName) = @_;
- my $soapEnv = new WebworkSOAP($authenKey, $courseName);
- my @tempArray = $soapEnv->{db}->listPermissionLevels;
- return array_to_soap_string(@tempArray);
-}
-
-=pod
-
-=begin WSDL
- _IN authenKey $string
- _IN courseName $string
- _IN userIDs @string
- _RETURN @WebworkSOAP::Classes::Permission Array of user objects
-=end WSDL
-
-=cut
-
-sub get_permissions {
- my ($self, $authenKey, $courseName, $userIDs) = @_;
- my $soapEnv = new WebworkSOAP($authenKey, $courseName);
- my @permissionData = $soapEnv->{db}->getPermissionLevels(@$userIDs);
- my @permissions;
- for (my $i = 0; $i < @permissionData; $i++) {
- push(@permissions, new WebworkSOAP::Classes::Permission(@permissionData[$i]));
- }
- return \@permissions;
-}
-
-=pod
-
-=begin WSDL
- _IN authenKey $string
- _IN courseName $string
- _IN userID $string
- _RETURN $WebworkSOAP::Classes::Permission of names objects.
-=end WSDL
-
-=cut
-
-sub get_permission {
- my ($self, $authenKey, $courseName, $userID) = @_;
- my $soapEnv = new WebworkSOAP($authenKey, $courseName);
- my $permissionData = $soapEnv->{db}->getPermissionLevel($userID);
- if (not defined $permissionData) {
- return -1;
- }
- my $permission = new WebworkSOAP::Classes::Permission($permissionData);
- return ($permission);
-}
-
-##################################################
-##Key
-##################################################
-
-=pod
-
-=begin WSDL
- _IN authenKey $string
- _IN courseName $string
- _IN record $WebworkSOAP::Classes::Key
- _RETURN $string
-=end WSDL
-
-=cut
-
-sub add_key {
- my ($self, $authenKey, $courseName, $record) = @_;
- my $soapEnv = new WebworkSOAP($authenKey, $courseName);
- my $newKey = $soapEnv->{db}->newKey;
- %$newKey = %$record;
- return SOAP::Data->type('string', $soapEnv->{db}->addKey($newKey));
-}
-
-=pod
-
-=begin WSDL
- _IN authenKey $string
- _IN courseName $string
- _IN record $WebworkSOAP::Classes::Key
- _RETURN $string
-=end WSDL
-
-=cut
-
-sub put_key {
- my ($self, $authenKey, $courseName, $record) = @_;
- my $soapEnv = new WebworkSOAP($authenKey, $courseName);
- return SOAP::Data->type('string', $soapEnv->{db}->putKey($record));
-}
-
-=pod
-
-=begin WSDL
- _IN authenKey $string
- _IN courseName $string
- _RETURN @string
-=end WSDL
-
-=cut
-
-sub list_keys {
- my ($self, $authenKey, $courseName) = @_;
- my $soapEnv = new WebworkSOAP($authenKey, $courseName);
- my @tempArray = $soapEnv->{db}->listKeys;
- return array_to_soap_string(@tempArray);
-}
-
-=pod
-
-=begin WSDL
- _IN authenKey $string
- _IN courseName $string
- _IN userIDs @string
- _RETURN @WebworkSOAP::Classes::Key Array of user objects
-=end WSDL
-
-=cut
-
-sub get_keys {
- my ($self, $authenKey, $courseName, $userIDs) = @_;
- my $soapEnv = new WebworkSOAP($authenKey, $courseName);
- my @keyData = $soapEnv->{db}->getKeys(@$userIDs);
- my @keys;
- for (my $i = 0; $i < @keyData; $i++) {
- push(@keys, new WebworkSOAP::Classes::Key(@keyData[$i]));
- }
- return \@keys;
-}
-
-=pod
-
-=begin WSDL
- _IN authenKey $string
- _IN courseName $string
- _IN userID $string
- _RETURN $WebworkSOAP::Classes::Key of names objects.
-=end WSDL
-
-=cut
-
-sub get_key {
- my ($self, $authenKey, $courseName, $userID) = @_;
- my $soapEnv = new WebworkSOAP($authenKey, $courseName);
- my $keyData = $soapEnv->{db}->getKey($userID);
- if (not defined $keyData) {
- return -1;
- }
- my $key = new WebworkSOAP::Classes::Key($keyData);
- return ($key);
-}
-
-##################################################
-##User
-##################################################
-
-=pod
-
-=begin WSDL
- _IN authenKey $string
- _IN courseName $string
- _IN record $WebworkSOAP::Classes::User
- _RETURN $string
-=end WSDL
-
-=cut
-
-sub add_user {
- my ($self, $authenKey, $courseName, $record) = @_;
- my $soapEnv = new WebworkSOAP($authenKey, $courseName);
- my $newUser = $soapEnv->{db}->newUser;
- %$newUser = %$record;
- return SOAP::Data->type('string', $soapEnv->{db}->addUser($newUser));
-}
-
-=pod
-
-=begin WSDL
- _IN authenKey $string
- _IN courseName $string
- _IN record $WebworkSOAP::Classes::User
- _RETURN $string
-=end WSDL
-
-=cut
-
-sub put_user {
- my ($self, $authenKey, $courseName, $record) = @_;
- my $soapEnv = new WebworkSOAP($authenKey, $courseName);
- return SOAP::Data->type('string', $soapEnv->{db}->putUser($record));
-}
-
-=pod
-
-=begin WSDL
- _IN authenKey $string
- _IN courseName $string
- _RETURN @string of names objects.
-=end WSDL
-
-=cut
-
-sub list_users {
- my ($self, $authenKey, $courseName) = @_;
- my $soapEnv = new WebworkSOAP($authenKey, $courseName);
- my @tempArray = $soapEnv->{db}->listUsers;
- return array_to_soap_string(@tempArray);
-}
-
-=pod
-
-=begin WSDL
- _IN authenKey $string
- _IN courseName $string
- _IN userID $string
- _RETURN $WebworkSOAP::Classes::User of names objects.
-=end WSDL
-
-=cut
-
-sub get_user {
- my ($self, $authenKey, $courseName, $userID) = @_;
- my $soapEnv = new WebworkSOAP($authenKey, $courseName);
- my $userData = $soapEnv->{db}->getUser($userID);
- if (not defined $userData) {
- return -1;
- }
- my $user = new WebworkSOAP::Classes::User($userData);
- return ($user);
-}
-
-=pod
-
-=begin WSDL
- _IN authenKey $string
- _IN courseName $string
- _IN userIDs @string
- _RETURN @WebworkSOAP::Classes::User Array of user objects
-=end WSDL
-
-=cut
-
-sub get_users {
- my ($self, $authenKey, $courseName, $userIDs) = @_;
- my $soapEnv = new WebworkSOAP($authenKey, $courseName);
- my @userData = $soapEnv->{db}->getUsers(@$userIDs);
- my @users;
- for (my $i = 0; $i < @userData; $i++) {
- push(@users, new WebworkSOAP::Classes::User(@userData[$i]));
- }
- return \@users;
-}
-
-=pod
-
-=begin WSDL
- _IN authenKey $string
- _IN courseName $string
- _IN userID $string
- _RETURN $string
-=end WSDL
-
-=cut
-
-sub delete_user {
- my ($self, $authenKey, $courseName, $userID) = @_;
- my $soapEnv = new WebworkSOAP($authenKey, $courseName);
- return SOAP::Data->type('string', $soapEnv->{db}->deleteUser($userID));
-}
-
-##################################################
-##Global Sets
-##################################################
-
-=pod
-
-=begin WSDL
- _IN authenKey $string
- _IN courseName $string
- _IN record $WebworkSOAP::Classes::GlobalSet
- _RETURN $string
-=end WSDL
-
-=cut
-
-sub add_global_set {
- my ($self, $authenKey, $courseName, $record) = @_;
- my $soapEnv = new WebworkSOAP($authenKey, $courseName);
- my $newGlobalSet = $soapEnv->{db}->newGlobalSet;
- %$newGlobalSet = %$record;
- return SOAP::Data->type('string', $soapEnv->{db}->addGlobalSet($newGlobalSet));
-}
-
-=pod
-
-=begin WSDL
- _IN authenKey $string
- _IN courseName $string
- _IN record $WebworkSOAP::Classes::GlobalSet
- _RETURN $string
-=end WSDL
-
-=cut
-
-sub put_global_set {
- my ($self, $authenKey, $courseName, $record) = @_;
- my $soapEnv = new WebworkSOAP($authenKey, $courseName);
- return SOAP::Data->type('string', $soapEnv->{db}->putGlobalSet($record));
-}
-
-=pod
-
-=begin WSDL
- _IN authenKey $string
- _IN courseName $string
- _RETURN @string of names objects.
-=end WSDL
-
-=cut
-
-sub list_global_sets {
- my ($self, $authenKey, $courseName) = @_;
- my $soapEnv = new WebworkSOAP($authenKey, $courseName);
- my @tempArray = $soapEnv->{db}->listGlobalSets;
- return array_to_soap_string(@tempArray);
-}
-
-=pod
-
-=begin WSDL
- _IN authenKey $string
- _IN courseName $string
- _RETURN @WebworkSOAP::Classes::GlobalSet Array of user objects
-=end WSDL
-
-=cut
-
-sub get_all_global_sets {
- my ($self, $authenKey, $courseName) = @_;
- my $soapEnv = new WebworkSOAP($authenKey, $courseName);
- my @tempArray = $soapEnv->{db}->listGlobalSets;
- my @setData = $soapEnv->{db}->getGlobalSets(@tempArray);
- my @sets;
- for (my $i = 0; $i < @setData; $i++) {
- push(@sets, new WebworkSOAP::Classes::GlobalSet(@setData[$i]));
- }
- return \@sets;
-}
-
-=pod
-
-=begin WSDL
- _IN authenKey $string
- _IN courseName $string
- _IN setIDs @string
- _RETURN @WebworkSOAP::Classes::GlobalSet Array of user objects
-=end WSDL
-
-=cut
-
-sub get_global_sets {
- my ($self, $authenKey, $courseName, $setIDs) = @_;
- my $soapEnv = new WebworkSOAP($authenKey, $courseName);
- my @setData = $soapEnv->{db}->getGlobalSets(@$setIDs);
- my @sets;
- for (my $i = 0; $i < @setData; $i++) {
- push(@sets, new WebworkSOAP::Classes::GlobalSet(@setData[$i]));
- }
- return \@sets;
-}
-
-=pod
-
-=begin WSDL
- _IN authenKey $string
- _IN courseName $string
- _IN setID $string
- _RETURN $WebworkSOAP::Classes::GlobalSet
-=end WSDL
-
-=cut
-
-sub get_global_set {
- my ($self, $authenKey, $courseName, $setID) = @_;
- my $soapEnv = new WebworkSOAP($authenKey, $courseName);
- my $setData = $soapEnv->{db}->getGlobalSet($setID);
- if (not defined $setData) {
- return -1;
- }
- my $set = new WebworkSOAP::Classes::GlobalSet($setData);
- return ($set);
-}
-
-=pod
-
-=begin WSDL
- _IN authenKey $string
- _IN courseName $string
- _IN setID $string
- _RETURN $string
-=end WSDL
-
-=cut
-
-sub delete_global_set {
- my ($self, $authenKey, $courseName, $setID) = @_;
- my $soapEnv = new WebworkSOAP($authenKey, $courseName);
- return SOAP::Data->type('string', $soapEnv->{db}->deleteGlobalSet($setID));
-}
-
-##################################################
-##Global Problems
-##################################################
-
-=pod
-
-=begin WSDL
- _IN authenKey $string
- _IN courseName $string
- _IN record $WebworkSOAP::Classes::GlobalProblem
- _RETURN $string
-=end WSDL
-
-=cut
-
-sub add_global_problem {
- my ($self, $authenKey, $courseName, $record) = @_;
- my $soapEnv = new WebworkSOAP($authenKey, $courseName);
- my $newGlobalProblem = $soapEnv->{db}->newGlobalProblem;
- %$newGlobalProblem = %$record;
- return SOAP::Data->type('string', $soapEnv->{db}->addGlobalProblem($newGlobalProblem));
-}
-
-=pod
-
-=begin WSDL
- _IN authenKey $string
- _IN courseName $string
- _IN record $WebworkSOAP::Classes::GlobalProblem
- _RETURN $string
-=end WSDL
-
-=cut
-
-sub put_global_problem {
- my ($self, $authenKey, $courseName, $record) = @_;
- my $soapEnv = new WebworkSOAP($authenKey, $courseName);
- return SOAP::Data->type('string', $soapEnv->{db}->putGlobalProblem($record));
-}
-
-=pod
-
-=begin WSDL
- _IN authenKey $string
- _IN courseName $string
- _IN setID $string
- _RETURN @string of names objects.
-=end WSDL
-
-=cut
-
-sub list_global_problems {
- my ($self, $authenKey, $courseName, $setID) = @_;
- my $soapEnv = new WebworkSOAP($authenKey, $courseName);
- my @tempArray = $soapEnv->{db}->listGlobalProblems($setID);
- return array_to_soap_string(@tempArray);
-}
-
-=pod
-
-=begin WSDL
- _IN authenKey $string
- _IN courseName $string
- _IN setID $string
- _RETURN @WebworkSOAP::Classes::GlobalProblem Array of user objects
-=end WSDL
-
-=cut
-
-sub get_all_global_problems {
- my ($self, $authenKey, $courseName, $setID) = @_;
- my $soapEnv = new WebworkSOAP($authenKey, $courseName);
- my @problemData = $soapEnv->{db}->getAllGlobalProblems($setID);
- my @problems;
- for (my $i = 0; $i < @problemData; $i++) {
- push(@problems, new WebworkSOAP::Classes::GlobalProblem(@problemData[$i]));
- }
- return \@problems;
-}
-
-=pod
-=begin
- _IN authenKey $string
- _IN courseName $string
- _IN problemIDs @string An array reference: [userID setID problemID]
- _RETURN @WebworkSOAP::Classes::GlobalProblem Array of user objects
-=end WSDL
-
-=cut
-
-sub get_global_problems {
- my ($self, $authenKey, $courseName, $problemIDs) = @_;
- my $soapEnv = new WebworkSOAP($authenKey, $courseName);
- my @problemData = $soapEnv->{db}->getGlobalProblems(@$problemIDs);
- my @problems;
- for (my $i = 0; $i < @problemData; $i++) {
- push(@problems, new WebworkSOAP::Classes::GlobalProblem(@problemData[$i])); #FIXME $problemData[$i]?
- }
- return \@problems;
-}
-
-=pod
-
-=begin WSDL
- _IN authenKey $string
- _IN courseName $string
- _IN setID $string
- _IN problemID $string
- _RETURN $WebworkSOAP::Classes::GlobalProblem of names objects.
-=end WSDL
-
-=cut
-
-sub get_global_problem {
- my ($self, $authenKey, $courseName, $setID, $problemID) = @_;
- my $soapEnv = new WebworkSOAP($authenKey, $courseName);
- my $problemData = $soapEnv->{db}->getGlobalProblem($setID, $problemID);
- if (not defined $problemData) {
- return -1;
- }
- my $problem = new WebworkSOAP::Classes::GlobalProblem($problemData);
- return ($problem);
-}
-
-=pod
-
-=begin WSDL
- _IN authenKey $string
- _IN courseName $string
- _IN setID $string
- _IN problemID $string
- _RETURN $string
-=end WSDL
-
-=cut
-
-sub delete_global_problem {
- my ($self, $authenKey, $courseName, $setID, $problemID) = @_;
- my $soapEnv = new WebworkSOAP($authenKey, $courseName);
- return SOAP::Data->type('string', $soapEnv->{db}->deleteGlobalProblem($setID, $problemID));
-}
-
-##################################################
-##USER PROBLEM
-##################################################
-
-=pod
-
-=begin WSDL
- _IN authenKey $string
- _IN courseName $string
- _IN record $WebworkSOAP::Classes::UserProblem
- _RETURN $string
-=end WSDL
-
-=cut
-
-sub add_user_problem {
- my ($self, $authenKey, $courseName, $record) = @_;
- my $soapEnv = new WebworkSOAP($authenKey, $courseName);
- my $newUserProblem = $soapEnv->{db}->newUserProblem;
- %$newUserProblem = %$record;
- return SOAP::Data->type('string', $soapEnv->{db}->addUserProblem($newUserProblem));
-}
-
-=pod
-
-=begin WSDL
- _IN authenKey $string
- _IN courseName $string
- _IN record $WebworkSOAP::Classes::UserProblem
- _RETURN $string
-=end WSDL
-
-=cut
-
-sub put_user_problem {
- my ($self, $authenKey, $courseName, $record) = @_;
- my $soapEnv = new WebworkSOAP($authenKey, $courseName);
- return SOAP::Data->type('string', $soapEnv->{db}->putUserProblem($record));
-}
-
-=pod
-
-=begin WSDL
- _IN authenKey $string
- _IN courseName $string
- _IN userID $string
- _IN setID $string
- _RETURN @string of names objects.
-=end WSDL
-
-=cut
-
-sub list_user_problems {
- my ($self, $authenKey, $courseName, $userID, $setID) = @_;
- my $soapEnv = new WebworkSOAP($authenKey, $courseName);
- my @tempArray = $soapEnv->{db}->listUserProblems($userID, $setID);
- return array_to_soap_string(@tempArray);
-}
-
-=pod
-
-=begin WSDL
- _IN authenKey $string
- _IN courseName $string
- _IN userID $string
- _IN setID $string
- _RETURN @WebworkSOAP::Classes::UserProblem of names objects.
-=end WSDL
-
-=cut
-
-sub get_all_user_problems {
- my ($self, $authenKey, $courseName, $userID, $setID) = @_;
- my $soapEnv = new WebworkSOAP($authenKey, $courseName);
- my @problemData = $soapEnv->{db}->getAllUserProblems($userID, $setID);
- my @problems;
- for (my $i = 0; $i < @problemData; $i++) {
- push(@problems, new WebworkSOAP::Classes::UserProblem(@problemData[$i]));
- }
- return \@problems;
-}
-
-=pod
-
-=begin WSDL
- _IN authenKey $string
- _IN courseName $string
- _IN userProblemIDs @string A 3 element array: { user_ID, setID, problemID }
- _RETURN @WebworkSOAP::Classes::UserProblem of names objects.
-=end WSDL
-
-=cut
-
-sub get_user_problems {
- my ($self, $authenKey, $courseName, $userProblemIDs) = @_;
- my $soapEnv = new WebworkSOAP($authenKey, $courseName);
- my @problemData = $soapEnv->{db}->getUserProblems(@$userProblemIDs);
- my @problems;
- for (my $i = 0; $i < @problemData; $i++) {
- push(@problems, new WebworkSOAP::Classes::UserProblem(@problemData[$i]));
- }
- return \@problems;
-}
-
-=pod
-
-=begin WSDL
- _IN authenKey $string
- _IN courseName $string
- _IN userID $string
- _IN setID $string
- _IN problemID $string
- _RETURN $WebworkSOAP::Classes::UserProblem of names objects.
-=end WSDL
-
-=cut
-
-sub get_user_problem {
- my ($self, $authenKey, $courseName, $userID, $setID, $problemID) = @_;
- my $soapEnv = new WebworkSOAP($authenKey, $courseName);
- my $problemData = $soapEnv->{db}->getUserProblem($userID, $setID, $problemID);
- if (not defined $problemData) {
- return -1;
- }
- my $problem = new WebworkSOAP::Classes::UserProblem($problemData);
- return ($problem);
-}
-
-=pod
-
-=begin WSDL
- _IN authenKey $string
- _IN courseName $string
- _IN userID $string
- _IN setID $string
- _IN problemID $string
- _RETURN $string
-=end WSDL
-
-=cut
-
-sub delete_user_problem {
- my ($self, $authenKey, $courseName, $userID, $setID, $problemID) = @_;
- my $soapEnv = new WebworkSOAP($authenKey, $courseName);
- return SOAP::Data->type('string', $soapEnv->{db}->deleteUserProblem($userID, $setID, $problemID));
-}
-
-##################################################
-##USER SET
-##################################################
-
-=pod
-
-=begin WSDL
- _IN authenKey $string
- _IN courseName $string
- _IN record $WebworkSOAP::Classes::UserSet
- _RETURN $string
-=end WSDL
-
-=cut
-
-sub add_user_set {
- my ($self, $authenKey, $courseName, $record) = @_;
- my $soapEnv = new WebworkSOAP($authenKey, $courseName);
- my $newUserSet = $soapEnv->{db}->newUserSet;
- %$newUserSet = %$record;
- return SOAP::Data->type('string', $soapEnv->{db}->addUserSet($newUserSet));
-}
-
-=pod
-
-=begin WSDL
- _IN authenKey $string
- _IN courseName $string
- _IN record $WebworkSOAP::Classes::UserSet
- _RETURN $string
-=end WSDL
-
-=cut
-
-sub put_user_set {
- my ($self, $authenKey, $courseName, $record) = @_;
- my $soapEnv = new WebworkSOAP($authenKey, $courseName);
- return SOAP::Data->type('string', $soapEnv->{db}->addUserSet($record));
-}
-
-=pod
-
-=begin WSDL
- _IN authenKey $string
- _IN courseName $string
- _IN userID $string
- _RETURN @string of names objects.
-=end WSDL
-
-=cut
-
-sub list_user_sets {
- my ($self, $authenKey, $courseName, $userID) = @_;
- my $soapEnv = new WebworkSOAP($authenKey, $courseName);
- my @tempArray = $soapEnv->{db}->listUserSets($userID);
- return array_to_soap_string(@tempArray);
-}
-
-=pod
-
-=begin WSDL
- _IN authenKey $string
- _IN courseName $string
- _RETURN @WebworkSOAP::Classes::UserSet of names objects.
-=end WSDL
-
-=cut
-
-sub get_all_user_sets {
- my ($self, $authenKey, $courseName) = @_;
- my $soapEnv = new WebworkSOAP($authenKey, $courseName);
- my @setData = $soapEnv->{db}->getAllUserSets();
- my @sets;
- for (my $i = 0; $i < @setData; $i++) {
- push(@sets, new WebworkSOAP::Classes::UserSet(@setData[$i]));
- }
- return \@sets;
-}
-
-=pod
-
-=begin WSDL
- _IN authenKey $string
- _IN courseName $string
- _IN userSetIDs $string
- _RETURN @WebworkSOAP::Classes::UserSet of names objects.
-=end WSDL
-
-=cut
-
-sub get_user_sets {
- my ($self, $authenKey, $courseName, $userSetIDs) = @_;
- my $soapEnv = new WebworkSOAP($authenKey, $courseName);
- my @setData = $soapEnv->{db}->getUserSets(@$userSetIDs);
- my @sets;
- for (my $i = 0; $i < @setData; $i++) {
- push(@sets, new WebworkSOAP::Classes::UserSet(@setData[$i]));
- }
- return \@sets;
-}
-
-=pod
-
-=begin WSDL
- _IN authenKey $string
- _IN courseName $string
- _IN userID $string
- _IN setID $string
- _RETURN $WebworkSOAP::Classes::UserSet of names objects.
-=end WSDL
-
-=cut
-
-sub get_user_set {
- my ($self, $authenKey, $courseName, $userID, $setID) = @_;
- my $soapEnv = new WebworkSOAP($authenKey, $courseName);
- my $setData = $soapEnv->{db}->getUserSet($userID, $setID);
- if (not defined $setData) {
- return -1;
- }
- my $set = new WebworkSOAP::Classes::UserSet($setData);
- return $set;
-}
-
-=pod
-
-=begin WSDL
- _IN authenKey $string
- _IN courseName $string
- _IN userID $string
- _IN setID $string
- _RETURN $string
-=end WSDL
-
-=cut
-
-sub delete_user_set {
- my ($self, $authenKey, $courseName, $userID, $setID) = @_;
- my $soapEnv = new WebworkSOAP($authenKey, $courseName);
- return SOAP::Data->type('string', $soapEnv->{db}->deleteUserSet($userID, $setID));
-}
-
-###########################################
-# grading utilities -- to be moved to Utils::Grades
-############################################
-
-############################################
-# get_wwassignment_grade_for_one ($db $userID $setID);
-#input $userID, $setID (or a UserSet record)?
-#output set grade for a homework problem or maximum grade for a gateway problem with several set versions
-############################################
-sub get_wwassignment_grade_for_one_user {
- my ($db, $userID, $setID) = @_;
- my $user_set = $db->getMergedSet($userID, $setID);
- print LOG "user $userID set $setID user_set " . ref($user_set) . "\n";
- return " " unless ref($user_set); # return a blank grade if there is no user_set
- warn " user $userID $setID " . ref($user_set) . "\n";
- my $setIsVersioned = (defined($user_set->assignment_type) && $user_set->assignment_type =~ /gateway/) ? 1 : 0;
- my @setVersions = ();
- if ($setIsVersioned) {
- my @vList = $db->listSetVersions($userID, $setID);
- # we have to have the merged set versions to
- # know what each of their assignment types
- # are (because proctoring can change)
- @setVersions = $db->getMergedSetVersions(map { [ $userID, $setID, $_ ] } @vList);
-
- # add the set versions to our list of sets
- # foreach ( @setVersions ) {
- # $setsByID{$_->set_id . ",v" . $_->version_id} = $_;
- # }
- # # flag the existence of set versions for this set
- # $setVersionsByID{$setName} = [ @vList ];
- # # and save the set names for display
- # push( @allSetIDs, $setName );
- # push( @allSetIDs, map { "$setName,v$_" } @vList );
-
- } else {
- # push( @allSetIDs, $setName );
- # $setVersionsByID{$setName} = "None";
- }
- my $grade;
- if ($setIsVersioned) {
- if (@setVersions) {
- $grade = 0;
- foreach my $setVersion (@setVersions) { # get highest grade among versions
- #print LOG "getting set $userID $setID version:".ref($setVersion)."\n";
- my $current_grade = get_set_grade_for_UserSet($db, $setVersion);
- $grade = $current_grade if $current_grade > $grade;
-
- }
-
- } else {
- $grade = " ";
- }
- } else { # not versioned
- $grade = get_set_grade_for_UserSet($db, $user_set);
- }
- $grade; # return grade
-}
-
-############################################
-# get_set_grade_for_UserSet ($db, $user_set);
-#input $userID, $setID (UserSet record);
-#output set grade for a homework problem or a single set version of a gateway quiz
-############################################
-
-sub get_set_grade_for_UserSet {
- my $db = shift;
- my $user_set = shift;
- warn "get_set_grade_for_UserSet(db, user_set); an argument is missing db: $db user_set $user_set"
- unless ref($db) =~ /DB/ and ref($user_set) =~ /Set/;
- my $setIsVersioned =
- (defined($user_set->assignment_type()) && $user_set->assignment_type() =~ /gateway/) ? 1 : 0;
- my @problemData = ();
- print LOG "get_set_grade_for_UserSet: getting set " . $user_set->set_id . " " . " for " . $user_set->user_id . "\n";
- if ($setIsVersioned) {
- @problemData = $db->getAllMergedProblemVersions($user_set->user_id, $user_set->set_id, $user_set->version_id)
- if $user_set->can('version_id');
- } else {
- @problemData = $db->getAllMergedUserProblems($user_set->user_id, $user_set->set_id);
- }
-
- my $grade = 0;
- for (my $i = 0; $i < @problemData; $i++) {
- #print LOG "$userID problem Data",join(" ", %{$problemData[$i]}),"\n\n";
- $grade += ($problemData[$i]->status) * ($problemData[$i]->value);
- #print LOG "grade is $grade\n";
- }
- return $grade;
-}
-1;
diff --git a/lib/WebworkSOAP/Classes/Course.pm b/lib/WebworkSOAP/Classes/Course.pm
deleted file mode 100644
index 753513a473..0000000000
--- a/lib/WebworkSOAP/Classes/Course.pm
+++ /dev/null
@@ -1,3 +0,0 @@
-package WebworkSOAP::Classes::Course;
-
-1;
diff --git a/lib/WebworkSOAP/Classes/GlobalProblem.pm b/lib/WebworkSOAP/Classes/GlobalProblem.pm
deleted file mode 100644
index 23c8ca8f41..0000000000
--- a/lib/WebworkSOAP/Classes/GlobalProblem.pm
+++ /dev/null
@@ -1,32 +0,0 @@
-package WebworkSOAP::Classes::GlobalProblem;
-
-=pod
-
-=begin WSDL
- _ATTR set_id $string set_id
- _ATTR problem_id $string problem_id
- _ATTR source_file $string source_file
- _ATTR value $string value
- _ATTR max_attempts $string max_attempts
- _ATTR showMeAnother $string showMeAnother
- _ATTR showMeAnotherCount $string showMeAnotherCount
-=end WSDL
-
-=cut
-
-sub new {
- my $self = shift;
- my $data = shift;
- $self = {};
- $self->{set_id} = SOAP::Data->type('string', $data->set_id);
- $self->{problem_id} = SOAP::Data->type('string', $data->problem_id);
- $self->{source_file} = SOAP::Data->type('string', $data->source_file);
- $self->{value} = SOAP::Data->type('string', $data->value);
- $self->{max_attempts} = SOAP::Data->type('string', $data->max_attempts);
- $self->{showMeAnother} = SOAP::Data->type('string', $data->showMeAnother);
- $self->{showMeAnotherCount} = SOAP::Data->type('string', $data->showMeAnotherCount);
- bless $self;
- return $self;
-}
-
-1;
diff --git a/lib/WebworkSOAP/Classes/GlobalSet.pm b/lib/WebworkSOAP/Classes/GlobalSet.pm
deleted file mode 100644
index 8c241c6683..0000000000
--- a/lib/WebworkSOAP/Classes/GlobalSet.pm
+++ /dev/null
@@ -1,52 +0,0 @@
-package WebworkSOAP::Classes::GlobalSet;
-
-=pod
-
-=begin WSDL
- _ATTR set_id $string set_id
- _ATTR set_header $string set_header
- _ATTR hardcopy_header $string hardcopy_header
- _ATTR open_date $string open_date
- _ATTR due_date $string due_date
- _ATTR answer_date $string answer_date
- _ATTR visible $string visible
- _ATTR enable_reduced_scoring $string enable_reduced_scoring
- _ATTR assignment_type $string assignment_type
- _ATTR attempts_per_version $string attempts_per_version
- _ATTR time_interval $string time_interval
- _ATTR versions_per_interval $string versions_per_interval
- _ATTR version_time_limit $string version_time_limit
- _ATTR version_creation_time $string version_creation_time
- _ATTR problem_randorder $string problem_randorder
- _ATTR version_last_attempt_time $string version_last_attempt_time
- _ATTR problems_per_page $string problems_per_page
-=end WSDL
-
-=cut
-
-sub new() {
- my $self = shift;
- my $data = shift;
- $self = {};
- $self->{set_id} = SOAP::Data->type('string', $data->set_id);
- $self->{set_header} = SOAP::Data->type('string', $data->set_header);
- $self->{hardcopy_header} = SOAP::Data->type('string', $data->hardcopy_header);
- $self->{open_date} = SOAP::Data->type('string', $data->open_date);
- $self->{due_date} = SOAP::Data->type('string', $data->due_date);
- $self->{answer_date} = SOAP::Data->type('string', $data->answer_date);
- $self->{visible} = SOAP::Data->type('string', $data->visible);
- $self->{enable_reduced_scoring} = SOAP::Data->type('string', $data->enable_reduced_scoring);
- $self->{assignment_type} = SOAP::Data->type('string', $data->assignment_type);
- $self->{attempts_per_version} = SOAP::Data->type('string', $data->attempts_per_version);
- $self->{time_interval} = SOAP::Data->type('string', $data->time_interval);
- $self->{versions_per_interval} = SOAP::Data->type('string', $data->versions_per_interval);
- $self->{version_time_limit} = SOAP::Data->type('string', $data->version_time_limit);
- $self->{version_creation_time} = SOAP::Data->type('string', $data->version_creation_time);
- $self->{problem_randorder} = SOAP::Data->type('string', $data->problem_randorder);
- $self->{version_last_attempt_time} = SOAP::Data->type('string', $data->version_last_attempt_time);
- $self->{problems_per_page} = SOAP::Data->type('string', $data->problems_per_page);
- bless $self;
- return $self;
-}
-
-1;
diff --git a/lib/WebworkSOAP/Classes/Key.pm b/lib/WebworkSOAP/Classes/Key.pm
deleted file mode 100644
index e9b47907be..0000000000
--- a/lib/WebworkSOAP/Classes/Key.pm
+++ /dev/null
@@ -1,24 +0,0 @@
-package WebworkSOAP::Classes::Key;
-
-=pod
-
-=begin WSDL
- _ATTR user_id $string user_id
- _ATTR key $string key
- _ATTR timestamp $string timestamp
-=end WSDL
-
-=cut
-
-sub new {
- my $self = shift;
- my $data = shift;
- $self = {};
- $self->{user_id} = SOAP::Data->type('string', $data->user_id);
- $self->{key} = SOAP::Data->type('string', $data->key);
- $self->{timestamp} = SOAP::Data->type('string', $data->timestamp);
- bless $self;
- return $self;
-}
-
-1;
diff --git a/lib/WebworkSOAP/Classes/Password.pm b/lib/WebworkSOAP/Classes/Password.pm
deleted file mode 100644
index 353e9d04b9..0000000000
--- a/lib/WebworkSOAP/Classes/Password.pm
+++ /dev/null
@@ -1,22 +0,0 @@
-package WebworkSOAP::Classes::Password;
-
-=pod
-
-=begin WSDL
- _ATTR user_id $string user_id
- _ATTR password $string password
-=end WSDL
-
-=cut
-
-sub new {
- my $self = shift;
- my $data = shift;
- $self = {};
- $self->{user_id} = SOAP::Data->type('string', $data->user_id);
- $self->{password} = SOAP::Data->type('string', $data->password);
- bless $self;
- return $self;
-}
-
-1;
diff --git a/lib/WebworkSOAP/Classes/Permission.pm b/lib/WebworkSOAP/Classes/Permission.pm
deleted file mode 100644
index 07d7a8cb84..0000000000
--- a/lib/WebworkSOAP/Classes/Permission.pm
+++ /dev/null
@@ -1,22 +0,0 @@
-package WebworkSOAP::Classes::Permission;
-
-=pod
-
-=begin WSDL
- _ATTR user_id $string user_id
- _ATTR permission $string permission
-=end WSDL
-
-=cut
-
-sub new {
- my $self = shift;
- my $data = shift;
- $self = {};
- $self->{user_id} = SOAP::Data->type('string', $data->user_id);
- $self->{permission} = SOAP::Data->type('string', $data->permission);
- bless $self;
- return $self;
-}
-
-1;
diff --git a/lib/WebworkSOAP/Classes/User.pm b/lib/WebworkSOAP/Classes/User.pm
deleted file mode 100644
index 358470d44d..0000000000
--- a/lib/WebworkSOAP/Classes/User.pm
+++ /dev/null
@@ -1,36 +0,0 @@
-package WebworkSOAP::Classes::User;
-
-=pod
-
-=begin WSDL
- _ATTR user_id $string user_id
- _ATTR first_name $string first_name
- _ATTR last_name $string last_name
- _ATTR email_address $string email_address
- _ATTR student_id $string student_id
- _ATTR status $string status
- _ATTR section $string section
- _ATTR recitation $string recitation
- _ATTR comment $string comment
-=end WSDL
-
-=cut
-
-sub new {
- my $self = shift;
- my $data = shift;
- $self = {};
- $self->{user_id} = SOAP::Data->type('string', $data->user_id);
- $self->{first_name} = SOAP::Data->type('string', $data->first_name);
- $self->{last_name} = SOAP::Data->type('string', $data->last_name);
- $self->{email_address} = SOAP::Data->type('string', $data->email_address);
- $self->{student_id} = SOAP::Data->type('string', $data->student_id);
- $self->{status} = SOAP::Data->type('string', $data->status);
- $self->{section} = SOAP::Data->type('string', $data->section);
- $self->{recitation} = SOAP::Data->type('string', $data->recitation);
- $self->{comment} = SOAP::Data->type('string', $data->comment);
- bless $self;
- return $self;
-}
-
-1;
diff --git a/lib/WebworkSOAP/Classes/UserProblem.pm b/lib/WebworkSOAP/Classes/UserProblem.pm
deleted file mode 100644
index 576916e952..0000000000
--- a/lib/WebworkSOAP/Classes/UserProblem.pm
+++ /dev/null
@@ -1,46 +0,0 @@
-package WebworkSOAP::Classes::UserProblem;
-
-=pod
-
-=begin WSDL
- _ATTR user_id $string user_id
- _ATTR set_id $string set_id
- _ATTR problem_id $string problem_id
- _ATTR source_file $string source_file
- _ATTR value $string value
- _ATTR max_attempts $string max_attempts
- _ATTR showMeAnother $string showMeAnother
- _ATTR showMeAnotherCount $string showMeAnotherCount
- _ATTR problem_seed $string problem_seed
- _ATTR status $string status
- _ATTR attempted $string attempted
- _ATTR last_answer $string last_answer
- _ATTR num_correct $string num_correct
- _ATTR num_incorrect $string num_incorrect
-=end WSDL
-
-=cut
-
-sub new {
- my $self = shift;
- my $data = shift;
- $self = {};
- $self->{user_id} = SOAP::Data->type('string', $data->user_id);
- $self->{set_id} = SOAP::Data->type('string', $data->set_id);
- $self->{problem_id} = SOAP::Data->type('string', $data->problem_id);
- $self->{source_file} = SOAP::Data->type('string', $data->source_file);
- $self->{value} = SOAP::Data->type('string', $data->value);
- $self->{max_attempts} = SOAP::Data->type('string', $data->max_attempts);
- $self->{showMeAnother} = SOAP::Data->type('string', $data->showMeAnother);
- $self->{showMeAnotherCount} = SOAP::Data->type('string', $data->showMeAnotherCount);
- $self->{problem_seed} = SOAP::Data->type('string', $data->problem_seed);
- $self->{status} = SOAP::Data->type('string', $data->status);
- $self->{attempted} = SOAP::Data->type('string', $data->attempted);
- $self->{last_answer} = SOAP::Data->type('string', $data->last_answer);
- $self->{num_correct} = SOAP::Data->type('string', $data->num_correct);
- $self->{num_incorrect} = SOAP::Data->type('string', $data->num_incorrect);
- bless $self;
- return $self;
-}
-
-1;
diff --git a/lib/WebworkSOAP/Classes/UserSet.pm b/lib/WebworkSOAP/Classes/UserSet.pm
deleted file mode 100644
index 6c314ecb7a..0000000000
--- a/lib/WebworkSOAP/Classes/UserSet.pm
+++ /dev/null
@@ -1,56 +0,0 @@
-package WebworkSOAP::Classes::UserSet;
-
-=pod
-
-=begin WSDL
- _ATTR user_id $string user_id
- _ATTR set_id $string set_id
- _ATTR psvn $string psvn
- _ATTR set_header $string set_header
- _ATTR hardcopy_header $string hardcopy_header
- _ATTR open_date $string open_date
- _ATTR due_date $string due_date
- _ATTR answer_date $string answer_date
- _ATTR visible $string visible
- _ATTR enable_reduced_scoring $string enable_reduced_scoring
- _ATTR assignment_type $string assignment_type
- _ATTR attempts_per_version $string attempts_per_version
- _ATTR time_interval $string time_interval
- _ATTR versions_per_interval $string versions_per_interval
- _ATTR version_time_limit $string version_time_limit
- _ATTR version_creation_time $string version_creation_time
- _ATTR problem_randorder $string problem_randorder
- _ATTR version_last_attempt_time $string version_last_attempt_time
- _ATTR problems_per_page $string problems_per_page
-=end WSDL
-
-=cut
-
-sub new() {
- my $self = shift;
- my $data = shift;
- $self = {};
- $self->{user_id} = SOAP::Data->type('string', $data->user_id);
- $self->{set_id} = SOAP::Data->type('string', $data->set_id);
- $self->{psvn} = SOAP::Data->type('string', $data->psvn);
- $self->{set_header} = SOAP::Data->type('string', $data->set_header);
- $self->{hardcopy_header} = SOAP::Data->type('string', $data->hardcopy_header);
- $self->{open_date} = SOAP::Data->type('string', $data->open_date);
- $self->{due_date} = SOAP::Data->type('string', $data->due_date);
- $self->{answer_date} = SOAP::Data->type('string', $data->answer_date);
- $self->{visible} = SOAP::Data->type('string', $data->visible);
- $self->{enable_reduced_scoring} = SOAP::Data->type('string', $data->enable_reduced_scoring);
- $self->{assignment_type} = SOAP::Data->type('string', $data->assignment_type);
- $self->{attempts_per_version} = SOAP::Data->type('string', $data->attempts_per_version);
- $self->{time_interval} = SOAP::Data->type('string', $data->time_interval);
- $self->{versions_per_interval} = SOAP::Data->type('string', $data->versions_per_interval);
- $self->{version_time_limit} = SOAP::Data->type('string', $data->version_time_limit);
- $self->{version_creation_time} = SOAP::Data->type('string', $data->version_creation_time);
- $self->{problem_randorder} = SOAP::Data->type('string', $data->problem_randorder);
- $self->{version_last_attempt_time} = SOAP::Data->type('string', $data->version_last_attempt_time);
- $self->{problems_per_page} = SOAP::Data->type('string', $data->problems_per_page);
- bless $self;
- return $self;
-}
-
-1;
diff --git a/lib/WebworkSOAP/SOAP.pm b/lib/WebworkSOAP/SOAP.pm
deleted file mode 100644
index 860434b73c..0000000000
--- a/lib/WebworkSOAP/SOAP.pm
+++ /dev/null
@@ -1,44 +0,0 @@
-package WebworkSOAP::SOAP;
-use Mojo::Base 'Mojolicious::Controller', -signatures;
-
-use Pod::WSDL;
-use SOAP::Lite;
-
-use WebworkSOAP;
-
-sub wsdl ($c) {
- my $pod = Pod::WSDL->new(
- source => 'WebworkSOAP',
- location => $c->server_root_url . '/webwork2_rpc',
- withDocumentation => 0
- );
-
- return $c->render(data => $pod->WSDL);
-}
-
-sub dispatch ($c) {
- my $som = SOAP::Deserializer->deserialize($c->req->body);
-
- my $som_body = $som->body;
- my $method = (keys %$som_body)[0];
- my @params = $som->paramsin;
-
- my $serializer = SOAP::Serializer->new;
-
- my $result = eval { WebworkSOAP->$method(@params); };
-
- # This is rather minimal error handling.
- if ($@) {
- if (ref $@ eq 'SOAP::Fault') {
- return $c->render(
- data => $serializer->envelope(fault => $@->faultcode),
- status => $@->faultcode == 8 ? 401 : 500
- );
- }
- return $c->render(data => $serializer->envelope(fault => 1), status => 500);
- }
-
- return $c->render(data => $serializer->envelope(freeform => \$result));
-}
-
-1;