[system] / trunk / webwork2 / lib / WebworkSOAP.pm Repository:
ViewVC logotype

View of /trunk/webwork2/lib/WebworkSOAP.pm

Parent Directory Parent Directory | Revision Log Revision Log


Revision 5057 - (download) (as text) (annotate)
Thu Jun 28 20:08:49 2007 UTC (5 years, 10 months ago) by mleventi
File size: 26636 byte(s)
Squashing more bugs adding php4 support

    1 package WebworkSOAP;
    2 
    3 use strict;
    4 
    5 use WeBWorK::Utils qw(pretty_print_rh);
    6 use WeBWorK::Utils::CourseManagement qw(addCourse renameCourse deleteCourse listCourses archiveCourse listArchivedCourses unarchiveCourse);
    7 use WeBWorK::DB;
    8 use WeBWorK::CourseEnvironment;
    9 use WeBWorK::ContentGenerator::Instructor;
   10 
   11 use WebworkSOAP::Classes::GlobalSet;
   12 use WebworkSOAP::Classes::UserSet;
   13 use WebworkSOAP::Classes::GlobalProblem;
   14 use WebworkSOAP::Classes::UserProblem;
   15 use WebworkSOAP::Classes::User;
   16 use WebworkSOAP::Classes::Key;
   17 use WebworkSOAP::Classes::Password;
   18 use WebworkSOAP::Classes::Permission;
   19 
   20 #init
   21 
   22 use constant {
   23         SOAPERROR_MAJOR             => 1,
   24         SOAPERROR_MINOR             => 2,
   25         SOAPERROR_CLASS_NOT_FOUND   => 3,
   26         SOAPERROR_USER_NOT_FOUND    => 4,
   27         SOAPERROR_SET_NOT_FOUND     => 5,
   28         SOAPERROR_PROBLEM_NOT_FOUND => 6,
   29         SOAPERROR_KEY_NOT_FOUND     => 7,
   30         SOAPERROR_AUTHEN_FAILED     => 8
   31 };
   32 
   33 our %SeedCE;
   34 $WebworkSOAP::SeedCE{soap_authen_key} = "123456789123456789";
   35 $WebworkSOAP::SeedCE{webwork_dir} = "/home/mleventi/webwork_projects/webwork/webwork2/";
   36 
   37 sub new {
   38     my($self,$authenKey,$courseName) = @_;
   39     $self = {};
   40     #Construct Course
   41     my $ce = eval { new WeBWorK::CourseEnvironment({%SeedCE, courseName => $courseName }) };
   42     $@ and soap_fault_major("Course Environment cannot be constructed.");
   43     #Authentication Check
   44     if($ce->{soap_authen_key} != $authenKey) {
   45         soap_fault_authen();
   46     }
   47     #Construct DB handle
   48     my $db = eval { new WeBWorK::DB($ce->{dbLayout}); };
   49     $@ and soap_fault_major("Failed to initialize database handle.");
   50     $self->{db} = $db;
   51     $self->{ce} = $ce;
   52     bless $self;
   53     return $self;
   54 }
   55 
   56 sub soap_fault_authen {
   57     die SOAP::Fault->faultcode(SOAPERROR_AUTHEN_FAILED)
   58                     ->faultstring("SOAP Webservice Authentication Failed!");
   59 }
   60 
   61 sub soap_fault {
   62     my ($errorCode,$errorMsg) = @_;
   63     die SOAP::Fault->faultcode($errorCode)
   64                    ->faultstring($errorMsg);
   65 }
   66 
   67 sub soap_fault_major {
   68     my ($errorMsg) = @_;
   69     soap_fault(SOAPERROR_MAJOR,$errorMsg);
   70 }
   71 ####################################################################################
   72 #SOAP CALLABLE FUNCTIONS
   73 ####################################################################################
   74 
   75 =pod
   76 =begin WSDL
   77 _RETURN $string Hello World!
   78 =cut
   79 sub hello {
   80     return "Hello world!";
   81 }
   82 
   83 #################################################
   84 #Course
   85 #################################################
   86 
   87 =pod
   88 =begin WSDL
   89 _IN authenKey $string
   90 _RETURN @string
   91 =end WSDL
   92 =cut
   93 sub list_courses {
   94     my ($self,$authenKey) = @_;
   95     my $ce = eval { new WeBWorK::CourseEnvironment({%WeBWorK::SeedCE })};
   96     $@ and soap_fault_major("Internal Course Environment cannot be constructed.");
   97     if($authenKey != $WebworkSOAP::SeedCE{soap_authen_key}) {
   98         soap_fault_authen;
   99     }
  100     return $WebworkSOAP::SeedCE{soap_authen_key};
  101     $@ and soap_fault_major("Course Environment cannot be constructed.");
  102     my @test = listCourses($ce);
  103     return \@test;
  104 }
  105 
  106 =pod
  107 =begin WSDL
  108 _IN authenKey $string
  109 _IN courseName $string
  110 _IN userID $string
  111 _RETURN $string
  112 =end WSDL
  113 =cut
  114 sub login_user {
  115     my ($self,$authenKey,$courseName,$userID) = @_;
  116     my $soapEnv = new WebworkSOAP($authenKey,$courseName);
  117     my $newKey;
  118     my $timestamp = time;
  119     my @chars = @{ $soapEnv->{ce}->{sessionKeyChars} };
  120     my $length = $soapEnv->{ce}->{sessionKeyLength};
  121     srand;
  122     $newKey = join ("", @chars[map rand(@chars), 1 .. $length]);
  123     my $Key = $soapEnv->{db}->newKey(user_id=>$userID, key=>$newKey, timestamp=>$timestamp);
  124     eval { $soapEnv->{db}->deleteKey($userID) };
  125     eval { $soapEnv->{db}->addKey($Key) };
  126     $@ and soap_fault(SOAPERROR_USER_NOT_FOUND,"User not found.");
  127     return $newKey;
  128 }
  129 
  130 =pod
  131 =begin WSDL
  132 _IN authenKey $string
  133 _IN courseName $string
  134 _IN userID $string
  135 _IN setID $string
  136 _RETURN $string
  137 =end WSDL
  138 =cut
  139 sub assign_set_to_user {
  140     my ($self,$authenKey,$courseName,$userID,$setID) = @_;
  141     my $soapEnv = new WebworkSOAP($authenKey,$courseName);
  142     my $GlobalSet = eval {$soapEnv->{db}->getGlobalSet($setID)};
  143     $@ and soap_fault(SOAPERROR_SET_NOT_FOUND,"Set not found.");
  144     my $setID = $GlobalSet->set_id;
  145     my $db = $soapEnv->{db};
  146     my $UserSet = $db->newUserSet;
  147     $UserSet->user_id($userID);
  148     $UserSet->set_id($setID);
  149     my @results;
  150     my $set_assigned = 0;
  151     eval { $db->addUserSet($UserSet) };
  152     if ($@) {
  153       if ($@ =~ m/user set exists/) {
  154         push @results, "set $setID is already assigned to user $userID.";
  155         $set_assigned = 1;
  156       } else {
  157           die $@;
  158         }
  159     }
  160 
  161     my @GlobalProblems = grep { defined $_ } $db->getAllGlobalProblems($setID);
  162     foreach my $GlobalProblem (@GlobalProblems) {
  163         my $seed = int( rand( 2423) ) + 36;
  164         my $UserProblem = $db->newUserProblem;
  165   $UserProblem->user_id($userID);
  166   $UserProblem->set_id($GlobalProblem->set_id);
  167   $UserProblem->problem_id($GlobalProblem->problem_id);
  168   initializeUserProblem($UserProblem, $seed);
  169   eval { $db->addUserProblem($UserProblem) };
  170     }
  171     return @results;
  172 }
  173 
  174 
  175 ####################################################################
  176 ##FUNCTIONS DIRECTLY MAPPED TO FUNCTIONS IN DB.pm
  177 ####################################################################
  178 ###############################################
  179 ##Password
  180 ###############################################
  181 
  182 =pod
  183 =begin WSDL
  184 _IN authenKey $string
  185 _IN courseName $string
  186 _IN record $WebworkSOAP::Classes::Password
  187 _RETURN $integer
  188 =end WSDL
  189 =cut
  190 sub add_password {
  191     my ($self,$authenKey,$courseName,$record) = @_;
  192     my $soapEnv = new WebworkSOAP($authenKey,$courseName);
  193     my $newPassword = $soapEnv->{db}->newPassword;
  194     %$newPassword = %$record;
  195     return $soapEnv->{db}->addPassword($newPassword);
  196 }
  197 
  198 =pod
  199 =begin WSDL
  200 _IN authenKey $string
  201 _IN courseName $string
  202 _IN record $WebworkSOAP::Classes::Password
  203 _RETURN $integer
  204 =end WSDL
  205 =cut
  206 sub put_password {
  207     my ($self,$authenKey,$courseName,$record) = @_;
  208     my $soapEnv = new WebworkSOAP($authenKey,$courseName);
  209     return $soapEnv->{db}->putPassword($record);
  210 }
  211 
  212 =pod
  213 =begin WSDL
  214 _IN authenKey $string
  215 _IN courseName $string
  216 _RETURN @string
  217 =end WSDL
  218 =cut
  219 sub list_password {
  220     my ($self,$authenKey,$courseName) = @_;
  221     my $soapEnv = new WebworkSOAP($authenKey,$courseName);
  222     my @tempArray = $soapEnv->{db}->listPasswords;
  223     return \@tempArray;
  224 }
  225 
  226 =pod
  227 =begin WSDL
  228 _IN authenKey $string
  229 _IN courseName $string
  230 _IN userIDs @string
  231 _RETURN @WebworkSOAP::Classes::Password Array of user objects
  232 =end WSDL
  233 =cut
  234 sub get_passwords {
  235     my ($self,$authenKey,$courseName,$userIDs) = @_;
  236     my $soapEnv = new WebworkSOAP($authenKey,$courseName);
  237     my @passwordData = $soapEnv->{db}->getPasswords(@$userIDs);
  238     my @passwords;
  239     for(my $i=0;$i<@passwordData;$i++) {
  240         push(@passwords,new WebworkSOAP::Classes::Password(@passwordData[$i]));
  241     }
  242     return \@passwords;
  243 }
  244 
  245 =pod
  246 =begin WSDL
  247 _IN authenKey $string
  248 _IN courseName $string
  249 _IN userID $string
  250 _RETURN $WebworkSOAP::Classes::Password of names objects.
  251 =end WSDL
  252 =cut
  253 sub get_password {
  254     my ($self,$authenKey,$courseName,$userID) = @_;
  255     my $soapEnv = new WebworkSOAP($authenKey,$courseName);
  256     my $passwordData = $soapEnv->{db}->getPassword($userID);
  257     if(not defined $passwordData) {
  258         return -1;
  259     }
  260     my $password = new WebworkSOAP::Classes::Password($passwordData);
  261     return ($password);
  262 }
  263 
  264 ##################################################
  265 ##Permission
  266 ##################################################
  267 
  268 =pod
  269 =begin WSDL
  270 _IN authenKey $string
  271 _IN courseName $string
  272 _IN record $WebworkSOAP::Classes::Permission
  273 _RETURN $integer
  274 =end WSDL
  275 =cut
  276 sub add_permission {
  277     my ($self,$authenKey,$courseName,$record) = @_;
  278     my $soapEnv = new WebworkSOAP($authenKey,$courseName);
  279     my $newPermissionLevel = $soapEnv->{db}->newPermissionLevel;
  280     %$newPermissionLevel = %$record;
  281     return $soapEnv->{db}->addPermissionLevel($newPermissionLevel);
  282 }
  283 
  284 =pod
  285 =begin WSDL
  286 _IN authenKey $string
  287 _IN courseName $string
  288 _IN record $WebworkSOAP::Classes::Permission
  289 _RETURN $integer
  290 =end WSDL
  291 =cut
  292 sub put_permission {
  293     my ($self,$authenKey,$courseName,$record) = @_;
  294     my $soapEnv = new WebworkSOAP($authenKey,$courseName);
  295     return $soapEnv->{db}->putPermissionLevel($record);
  296 }
  297 
  298 =pod
  299 =begin WSDL
  300 _IN authenKey $string
  301 _IN courseName $string
  302 _RETURN @string
  303 =end WSDL
  304 =cut
  305 sub list_permissions {
  306     my ($self,$authenKey,$courseName) = @_;
  307     my $soapEnv = new WebworkSOAP($authenKey,$courseName);
  308     my @tempArray = $soapEnv->{db}->listPermissionLevels;
  309     return \@tempArray;
  310 }
  311 
  312 =pod
  313 =begin WSDL
  314 _IN authenKey $string
  315 _IN courseName $string
  316 _IN userIDs @string
  317 _RETURN @WebworkSOAP::Classes::Permission Array of user objects
  318 =end WSDL
  319 =cut
  320 sub get_permissions {
  321     my ($self,$authenKey,$courseName,$userIDs) = @_;
  322     my $soapEnv = new WebworkSOAP($authenKey,$courseName);
  323     my @permissionData = $soapEnv->{db}->getPermissionLevels(@$userIDs);
  324     my @permissions;
  325     for(my $i=0;$i<@permissionData;$i++) {
  326         push(@permissions,new WebworkSOAP::Classes::Permission(@permissionData[$i]));
  327     }
  328     return \@permissions;
  329 }
  330 
  331 =pod
  332 =begin WSDL
  333 _IN authenKey $string
  334 _IN courseName $string
  335 _IN userID $string
  336 _RETURN $WebworkSOAP::Classes::Permission of names objects.
  337 =end WSDL
  338 =cut
  339 sub get_permission {
  340     my ($self,$authenKey,$courseName,$userID) = @_;
  341     my $soapEnv = new WebworkSOAP($authenKey,$courseName);
  342     my $permissionData = $soapEnv->{db}->getPermissionLevel($userID);
  343     if(not defined $permissionData) {
  344         return -1;
  345     }
  346     my $permission = new WebworkSOAP::Classes::Permission($permissionData);
  347     return ($permission);
  348 }
  349 
  350 ##################################################
  351 ##Key
  352 ##################################################
  353 
  354 =pod
  355 =begin WSDL
  356 _IN authenKey $string
  357 _IN courseName $string
  358 _IN record $WebworkSOAP::Classes::Key
  359 _RETURN $integer
  360 =end WSDL
  361 =cut
  362 sub add_key {
  363     my ($self,$authenKey,$courseName,$record) = @_;
  364     my $soapEnv = new WebworkSOAP($authenKey,$courseName);
  365     my $newKey = $soapEnv->{db}->newKey;
  366     %$newKey = %$record;
  367     return $soapEnv->{db}->addKey($newKey);
  368 }
  369 
  370 =pod
  371 =begin WSDL
  372 _IN authenKey $string
  373 _IN courseName $string
  374 _IN record $WebworkSOAP::Classes::Key
  375 _RETURN $integer
  376 =end WSDL
  377 =cut
  378 sub put_key {
  379     my ($self,$authenKey,$courseName,$record) = @_;
  380     my $soapEnv = new WebworkSOAP($authenKey,$courseName);
  381     return $soapEnv->{db}->putKey($record);
  382 }
  383 
  384 =pod
  385 =begin WSDL
  386 _IN authenKey $string
  387 _IN courseName $string
  388 _RETURN @string
  389 =end WSDL
  390 =cut
  391 sub list_keys {
  392     my ($self,$authenKey,$courseName) = @_;
  393     my $soapEnv = new WebworkSOAP($authenKey,$courseName);
  394     my @tempArray = $soapEnv->{db}->listKeys;
  395     return \@tempArray;
  396 }
  397 
  398 =pod
  399 =begin WSDL
  400 _IN authenKey $string
  401 _IN courseName $string
  402 _IN userIDs @string
  403 _RETURN @WebworkSOAP::Classes::Key Array of user objects
  404 =end WSDL
  405 =cut
  406 sub get_keys {
  407     my ($self,$authenKey,$courseName,$userIDs) = @_;
  408     my $soapEnv = new WebworkSOAP($authenKey,$courseName);
  409     my @keyData = $soapEnv->{db}->getKeys(@$userIDs);
  410     my @keys;
  411     for(my $i=0;$i<@keyData;$i++) {
  412         push(@keys,new WebworkSOAP::Classes::Key(@keyData[$i]));
  413     }
  414     return \@keys;
  415 }
  416 
  417 =pod
  418 =begin WSDL
  419 _IN authenKey $string
  420 _IN courseName $string
  421 _IN userID $string
  422 _RETURN $WebworkSOAP::Classes::Key of names objects.
  423 =end WSDL
  424 =cut
  425 sub get_key {
  426     my ($self,$authenKey,$courseName,$userID) = @_;
  427     my $soapEnv = new WebworkSOAP($authenKey,$courseName);
  428     my $keyData = $soapEnv->{db}->getKey($userID);
  429     if(not defined $keyData) {
  430         return -1;
  431     }
  432     my $key = new WebworkSOAP::Classes::Key($keyData);
  433     return ($key);
  434 }
  435 
  436 ##################################################
  437 ##User
  438 ##################################################
  439 
  440 =pod
  441 =begin WSDL
  442 _IN authenKey $string
  443 _IN courseName $string
  444 _IN record $WebworkSOAP::Classes::User
  445 _RETURN $integer
  446 =end WSDL
  447 =cut
  448 sub add_user {
  449     my ($self,$authenKey,$courseName,$record) = @_;
  450     my $soapEnv = new WebworkSOAP($authenKey,$courseName);
  451     my $newUser = $soapEnv->{db}->newUser;
  452     %$newUser = %$record;
  453     return $soapEnv->{db}->addUser($newUser);
  454 }
  455 
  456 =pod
  457 =begin WSDL
  458 _IN authenKey $string
  459 _IN courseName $string
  460 _IN record $WebworkSOAP::Classes::User
  461 _RETURN $integer
  462 =end WSDL
  463 =cut
  464 sub put_user {
  465     my ($self,$authenKey,$courseName,$record) = @_;
  466     my $soapEnv = new WebworkSOAP($authenKey,$courseName);
  467     return $soapEnv->{db}->putUser($record);
  468 }
  469 
  470 =pod
  471 =begin WSDL
  472 _IN authenKey $string
  473 _IN courseName $string
  474 _RETURN @string of names objects.
  475 =end WSDL
  476 =cut
  477 sub list_users {
  478     my ($self,$authenKey,$courseName) = @_;
  479     my $soapEnv = new WebworkSOAP($authenKey,$courseName);
  480     my @tempArray = $soapEnv->{db}->listUsers;
  481     return \@tempArray;
  482 }
  483 
  484 =pod
  485 =begin WSDL
  486 _IN authenKey $string
  487 _IN courseName $string
  488 _IN userID $string
  489 _RETURN $WebworkSOAP::Classes::User of names objects.
  490 =end WSDL
  491 =cut
  492 sub get_user {
  493     my ($self,$authenKey,$courseName,$userID) = @_;
  494     my $soapEnv = new WebworkSOAP($authenKey,$courseName);
  495     my $userData = $soapEnv->{db}->getUser($userID);
  496     if(not defined $userData) {
  497         return -1;
  498     }
  499     my $user = new WebworkSOAP::Classes::User($userData);
  500     return ($user);
  501 }
  502 
  503 =pod
  504 =begin WSDL
  505 _IN authenKey $string
  506 _IN courseName $string
  507 _IN userIDs @string
  508 _RETURN @WebworkSOAP::Classes::User Array of user objects
  509 =end WSDL
  510 =cut
  511 sub get_users {
  512     my ($self,$authenKey,$courseName,$userIDs) = @_;
  513     my $soapEnv = new WebworkSOAP($authenKey,$courseName);
  514     my @userData = $soapEnv->{db}->getUsers(@$userIDs);
  515     my @users;
  516     for(my $i=0;$i<@userData;$i++) {
  517         push(@users,new WebworkSOAP::Classes::User(@userData[$i]));
  518     }
  519     return \@users;
  520 }
  521 
  522 =pod
  523 =begin WSDL
  524 _IN authenKey $string
  525 _IN courseName $string
  526 _IN userID $string
  527 _RETURN $integer
  528 =end WSDL
  529 =cut
  530 sub delete_user {
  531     my ($self,$authenKey,$courseName,$userID) = @_;
  532     my $soapEnv = new WebworkSOAP($authenKey,$courseName);
  533     return $soapEnv->{db}->deleteUser($userID);
  534 }
  535 
  536 ##################################################
  537 ##Global Sets
  538 ##################################################
  539 
  540 =pod
  541 =begin WSDL
  542 _IN authenKey $string
  543 _IN courseName $string
  544 _IN record $WebworkSOAP::Classes::GlobalSet
  545 _RETURN $integer
  546 =end WSDL
  547 =cut
  548 sub add_global_set {
  549     my ($self,$authenKey,$courseName,$record) = @_;
  550     my $soapEnv = new WebworkSOAP($authenKey,$courseName);
  551     my $newGlobalSet = $soapEnv->{db}->newGlobalSet;
  552     %$newGlobalSet = %$record;
  553     return $soapEnv->{db}->addGlobalSet($newGlobalSet);
  554 }
  555 
  556 =pod
  557 =begin WSDL
  558 _IN authenKey $string
  559 _IN courseName $string
  560 _IN record $WebworkSOAP::Classes::GlobalSet
  561 _RETURN $integer
  562 =end WSDL
  563 =cut
  564 sub put_global_set {
  565     my ($self,$authenKey,$courseName,$record) = @_;
  566     my $soapEnv = new WebworkSOAP($authenKey,$courseName);
  567     return $soapEnv->{db}->putGlobalSet($record);
  568 }
  569 
  570 =pod
  571 =begin WSDL
  572 _IN authenKey $string
  573 _IN courseName $string
  574 _RETURN @string of names objects.
  575 =end WSDL
  576 =cut
  577 sub list_global_sets {
  578     my ($self,$authenKey,$courseName) = @_;
  579     my $soapEnv = new WebworkSOAP($authenKey,$courseName);
  580     my @tempArray = $soapEnv->{db}->listGlobalSets;
  581     return \@tempArray;
  582 }
  583 
  584 
  585 =pod
  586 =begin WSDL
  587 _IN authenKey $string
  588 _IN courseName $string
  589 _RETURN @WebworkSOAP::Classes::GlobalSet Array of user objects
  590 =end WSDL
  591 =cut
  592 sub get_all_global_sets {
  593     my ($self,$authenKey,$courseName) = @_;
  594     my $soapEnv = new WebworkSOAP($authenKey,$courseName);
  595     my @tempArray = $soapEnv->{db}->listGlobalSets;
  596     my @setData = $soapEnv->{db}->getGlobalSets(@tempArray);
  597     my @sets;
  598     for(my $i=0;$i<@setData;$i++) {
  599         push(@sets,new WebworkSOAP::Classes::GlobalSet(@setData[$i]));
  600     }
  601     return \@sets;
  602 }
  603 
  604 =pod
  605 =begin WSDL
  606 _IN authenKey $string
  607 _IN courseName $string
  608 _IN setIDs @string
  609 _RETURN @WebworkSOAP::Classes::GlobalSet Array of user objects
  610 =end WSDL
  611 =cut
  612 sub get_global_sets {
  613     my ($self,$authenKey,$courseName,$setIDs) = @_;
  614     my $soapEnv = new WebworkSOAP($authenKey,$courseName);
  615     my @setData = $soapEnv->{db}->getGlobalSets(@$setIDs);
  616     my @sets;
  617     for(my $i=0;$i<@setData;$i++) {
  618         push(@sets,new WebworkSOAP::Classes::GlobalSet(@setData[$i]));
  619     }
  620     return \@sets;
  621 }
  622 
  623 =pod
  624 =begin WSDL
  625 _IN authenKey $string
  626 _IN courseName $string
  627 _IN setID $string
  628 _RETURN $WebworkSOAP::Classes::GlobalSet
  629 =end WSDL
  630 =cut
  631 sub get_global_set {
  632     my ($self,$authenKey,$courseName,$setID) = @_;
  633     my $soapEnv = new WebworkSOAP($authenKey,$courseName);
  634     my $setData = $soapEnv->{db}->getGlobalSet($setID);
  635     if(not defined $setData) {
  636         return -1;
  637     }
  638     my $set = new WebworkSOAP::Classes::GlobalSet($setData);
  639     return ($set);
  640 }
  641 
  642 =pod
  643 =begin WSDL
  644 _IN authenKey $string
  645 _IN courseName $string
  646 _IN setID $string
  647 _RETURN $integer
  648 =end WSDL
  649 =cut
  650 sub delete_global_set {
  651     my ($self,$authenKey,$courseName,$setID) = @_;
  652     my $soapEnv = new WebworkSOAP($authenKey,$courseName);
  653     return $soapEnv->{db}->deleteGlobalSet($setID);
  654 }
  655 
  656 ##################################################
  657 ##Global Problems
  658 ##################################################
  659 
  660 =pod
  661 =begin WSDL
  662 _IN authenKey $string
  663 _IN courseName $string
  664 _IN record $WebworkSOAP::Classes::GlobalProblem
  665 _RETURN $integer
  666 =end WSDL
  667 =cut
  668 sub add_global_problem {
  669     my ($self,$authenKey,$courseName,$record) = @_;
  670     my $soapEnv = new WebworkSOAP($authenKey,$courseName);
  671     my $newGlobalProblem = $soapEnv->{db}->newGlobalProblem;
  672     %$newGlobalProblem = %$record;
  673     return $soapEnv->{db}->addGlobalProblem($newGlobalProblem);
  674 }
  675 
  676 =pod
  677 =begin WSDL
  678 _IN authenKey $string
  679 _IN courseName $string
  680 _IN record $WebworkSOAP::Classes::GlobalProblem
  681 _RETURN $integer
  682 =end WSDL
  683 =cut
  684 sub put_global_problem {
  685     my ($self,$authenKey,$courseName,$record) = @_;
  686     my $soapEnv = new WebworkSOAP($authenKey,$courseName);
  687     return $soapEnv->{db}->putGlobalProblem($record);
  688 }
  689 
  690 =pod
  691 =begin WSDL
  692 _IN authenKey $string
  693 _IN courseName $string
  694 _IN problemID $string
  695 _RETURN @string of names objects.
  696 =end WSDL
  697 =cut
  698 sub list_global_problems {
  699     my ($self,$authenKey,$courseName,$problemID) = @_;
  700     my $soapEnv = new WebworkSOAP($authenKey,$courseName);
  701     my @tempArray = $soapEnv->{db}->listGlobalProblems($problemID);
  702     return \@tempArray;
  703 }
  704 
  705 =pod
  706 =begin WSDL
  707 _IN authenKey $string
  708 _IN courseName $string
  709 _IN setID $string
  710 _RETURN @WebworkSOAP::Classes::GlobalProblem Array of user objects
  711 =end WSDL
  712 =cut
  713 sub get_all_global_problems {
  714     my ($self,$authenKey,$courseName,$setID) = @_;
  715     my $soapEnv = new WebworkSOAP($authenKey,$courseName);
  716     my @problemData = $soapEnv->{db}->getAllGlobalProblems($setID);
  717     my @problems;
  718     for(my $i=0;$i<@problemData;$i++) {
  719         push(@problems,new WebworkSOAP::Classes::GlobalProblem(@problemData[$i]));
  720     }
  721     return \@problems;
  722 }
  723 
  724 =pod
  725 =begin
  726 _IN authenKey $string
  727 _IN courseName $string
  728 _IN problemIDs @string
  729 _RETURN @WebworkSOAP::Classes::GlobalProblem Array of user objects
  730 =end WSDL
  731 =cut
  732 sub get_global_problems {
  733     my ($self,$authenKey,$courseName,$problemIDs) = @_;
  734     my $soapEnv = new WebworkSOAP($authenKey,$courseName);
  735     my @problemData = $soapEnv->{db}->getGlobalProblems(@$problemIDs);
  736     my @problems;
  737     for(my $i=0;$i<@problemData;$i++) {
  738         push(@problems,new WebworkSOAP::Classes::GlobalProblem(@problemData[$i]));
  739     }
  740     return \@problems;
  741 }
  742 
  743 =pod
  744 =begin WSDL
  745 _IN authenKey $string
  746 _IN courseName $string
  747 _IN setID $string
  748 _IN problemID $string
  749 _RETURN $WebworkSOAP::Classes::GlobalProblem of names objects.
  750 =end WSDL
  751 =cut
  752 sub get_global_problem {
  753     my ($self,$authenKey,$courseName,$setID,$problemID) = @_;
  754     my $soapEnv = new WebworkSOAP($authenKey,$courseName);
  755     my $problemData = $soapEnv->{db}->getGlobalProblem($setID,$problemID);
  756     if(not defined $problemData) {
  757         return -1;
  758     }
  759     my $problem = new WebworkSOAP::Classes::GlobalProblem($problemData);
  760     return ($problem);
  761 }
  762 
  763 =pod
  764 =begin WSDL
  765 _IN authenKey $string
  766 _IN courseName $string
  767 _IN setID $string
  768 _IN problemID $string
  769 _RETURN $integer
  770 =end WSDL
  771 =cut
  772 sub delete_global_problem {
  773     my ($self,$authenKey,$courseName,$setID,$problemID) = @_;
  774     my $soapEnv = new WebworkSOAP($authenKey,$courseName);
  775     return $soapEnv->{db}->deleteGlobalProblem($setID,$problemID);
  776 }
  777 
  778 ##################################################
  779 ##USER PROBLEM
  780 ##################################################
  781 
  782 =pod
  783 =begin WSDL
  784 _IN authenKey $string
  785 _IN courseName $string
  786 _IN record $WebworkSOAP::Classes::UserProblem
  787 _RETURN $integer
  788 =end WSDL
  789 =cut
  790 sub add_user_problem {
  791     my ($self,$authenKey,$courseName,$record) = @_;
  792     my $soapEnv = new WebworkSOAP($authenKey,$courseName);
  793     my $newUserProblem = $soapEnv->{db}->newUserProblem;
  794     %$newUserProblem = %$record;
  795     return $soapEnv->{db}->addUserProblem($newUserProblem);
  796 }
  797 
  798 =pod
  799 =begin WSDL
  800 _IN authenKey $string
  801 _IN courseName $string
  802 _IN record $WebworkSOAP::Classes::UserProblem
  803 _RETURN $integer
  804 =end WSDL
  805 =cut
  806 sub put_user_problem {
  807     my ($self,$authenKey,$courseName,$record) = @_;
  808     my $soapEnv = new WebworkSOAP($authenKey,$courseName);
  809     return $soapEnv->{db}->putUserProblem($record);
  810 }
  811 
  812 =pod
  813 =begin WSDL
  814 _IN authenKey $string
  815 _IN courseName $string
  816 _IN userID $string
  817 _RETURN @string of names objects.
  818 =end WSDL
  819 =cut
  820 sub list_user_problems {
  821     my ($self,$authenKey,$courseName,$userID) = @_;
  822     my $soapEnv = new WebworkSOAP($authenKey,$courseName);
  823     my @tempArray = $soapEnv->{db}->listUserProblems($userID);
  824     return \@tempArray;
  825 }
  826 
  827 =pod
  828 =begin WSDL
  829 _IN authenKey $string
  830 _IN courseName $string
  831 _IN userID $string
  832 _IN setID $string
  833 _RETURN @WebworkSOAP::Classes::UserProblem of names objects.
  834 =end WSDL
  835 =cut
  836 sub get_all_user_problems {
  837     my ($self,$authenKey,$courseName,$userID,$setID) = @_;
  838     my $soapEnv = new WebworkSOAP($authenKey,$courseName);
  839     my @problemData = $soapEnv->{db}->getAllUserProblems($userID,$setID);
  840     my @problems;
  841     for(my $i=0;$i<@problemData;$i++) {
  842         push(@problems,new WebworkSOAP::Classes::UserProblem(@problemData[$i]));
  843     }
  844     return \@problems;
  845 }
  846 
  847 =pod
  848 =begin WSDL
  849 _IN authenKey $string
  850 _IN courseName $string
  851 _IN userProblemIDs @string
  852 _RETURN @WebworkSOAP::Classes::UserProblem of names objects.
  853 =end WSDL
  854 =cut
  855 sub get_user_problems {
  856     my ($self,$authenKey,$courseName,$userProblemIDs) = @_;
  857     my $soapEnv = new WebworkSOAP($authenKey,$courseName);
  858     my @problemData = $soapEnv->{db}->getUserProblems(@$userProblemIDs);
  859     my @problems;
  860     for(my $i=0;$i<@problemData;$i++) {
  861         push(@problems,new WebworkSOAP::Classes::UserProblem(@problemData[$i]));
  862     }
  863     return \@problems;
  864 }
  865 
  866 =pod
  867 =begin WSDL
  868 _IN authenKey $string
  869 _IN courseName $string
  870 _IN userID $string
  871 _IN setID $string
  872 _IN problemID $string
  873 _RETURN $WebworkSOAP::Classes::UserProblem of names objects.
  874 =end WSDL
  875 =cut
  876 sub get_user_problem {
  877     my ($self,$authenKey,$courseName,$userID,$setID,$problemID) = @_;
  878     my $soapEnv = new WebworkSOAP($authenKey,$courseName);
  879     my $problemData = $soapEnv->{db}->getUserProblem($userID,$setID,$problemID);
  880     if(not defined $problemData) {
  881         return -1;
  882     }
  883     my $problem = new WebworkSOAP::Classes::UserProblem($problemData);
  884     return ($problem);
  885 }
  886 
  887 =pod
  888 =begin WSDL
  889 _IN authenKey $string
  890 _IN courseName $string
  891 _IN userID $string
  892 _IN setID $string
  893 _IN problemID $string
  894 _RETURN $integer
  895 =end WSDL
  896 =cut
  897 sub delete_user_problem {
  898     my ($self,$authenKey,$courseName,$userID,$setID,$problemID) = @_;
  899     my $soapEnv = new WebworkSOAP($authenKey,$courseName);
  900     return $soapEnv->{db}->deleteUserProblem($userID,$setID,$problemID);
  901 }
  902 
  903 ##################################################
  904 ##USER SET
  905 ##################################################
  906 
  907 =pod
  908 =begin WSDL
  909 _IN authenKey $string
  910 _IN courseName $string
  911 _IN record $WebworkSOAP::Classes::UserSet
  912 _RETURN $integer
  913 =end WSDL
  914 =cut
  915 sub add_user_set {
  916     my ($self,$authenKey,$courseName,$record) = @_;
  917     my $soapEnv = new WebworkSOAP($authenKey,$courseName);
  918     my $newUserSet = $soapEnv->{db}->newUserSet;
  919     %$newUserSet = %$record;
  920     return $soapEnv->{db}->addUserSet($newUserSet);
  921 }
  922 
  923 =pod
  924 =begin WSDL
  925 _IN authenKey $string
  926 _IN courseName $string
  927 _IN record $WebworkSOAP::Classes::UserSet
  928 _RETURN $integer
  929 =end WSDL
  930 =cut
  931 sub put_user_set {
  932     my ($self,$authenKey,$courseName,$record) = @_;
  933     my $soapEnv = new WebworkSOAP($authenKey,$courseName);
  934     return $soapEnv->{db}->addUserSet($record);
  935 }
  936 
  937 =pod
  938 =begin WSDL
  939 _IN authenKey $string
  940 _IN courseName $string
  941 _IN userID $string
  942 _RETURN @string of names objects.
  943 =end WSDL
  944 =cut
  945 sub list_user_sets {
  946     my ($self,$authenKey,$courseName,$userID) = @_;
  947     my $soapEnv = new WebworkSOAP($authenKey,$courseName);
  948     my @tempArray = $soapEnv->{db}->listUserSets($userID);
  949     return \@tempArray;
  950 }
  951 
  952 =pod
  953 =begin WSDL
  954 _IN authenKey $string
  955 _IN courseName $string
  956 _RETURN @WebworkSOAP::Classes::UserSet of names objects.
  957 =end WSDL
  958 =cut
  959 sub get_all_user_sets {
  960     my ($self,$authenKey,$courseName) = @_;
  961     my $soapEnv = new WebworkSOAP($authenKey,$courseName);
  962     my @setData = $soapEnv->{db}->getAllUserSets();
  963     my @sets;
  964     for(my $i=0;$i<@setData;$i++) {
  965         push(@sets,new WebworkSOAP::Classes::UserSet(@setData[$i]));
  966     }
  967     return \@sets;
  968 }
  969 
  970 =pod
  971 =begin WSDL
  972 _IN authenKey $string
  973 _IN courseName $string
  974 _IN userSetIDs $string
  975 _RETURN @WebworkSOAP::Classes::UserSet of names objects.
  976 =end WSDL
  977 =cut
  978 sub get_user_sets {
  979     my ($self,$authenKey,$courseName,$userSetIDs) = @_;
  980     my $soapEnv = new WebworkSOAP($authenKey,$courseName);
  981     my @setData = $soapEnv->{db}->getUserSets(@$userSetIDs);
  982     my @sets;
  983     for(my $i=0;$i<@setData;$i++) {
  984         push(@sets,new WebworkSOAP::Classes::UserSet(@setData[$i]));
  985     }
  986     return \@sets;
  987 }
  988 
  989 =pod
  990 =begin WSDL
  991 _IN authenKey $string
  992 _IN courseName $string
  993 _IN userID $string
  994 _IN setID $string
  995 _RETURN $WebworkSOAP::Classes::UserSet of names objects.
  996 =end WSDL
  997 =cut
  998 sub get_user_set {
  999     my ($self,$authenKey,$courseName,$userID,$setID) = @_;
 1000     my $soapEnv = new WebworkSOAP($authenKey,$courseName);
 1001     my $setData = $soapEnv->{db}->getUserSet($userID,$setID);
 1002     if(not defined $setData) {
 1003         return -1;
 1004     }
 1005     my $set = new WebworkSOAP::Classes::UserSet($setData);
 1006     return $set;
 1007 }
 1008 
 1009 =pod
 1010 =begin WSDL
 1011 _IN authenKey $string
 1012 _IN courseName $string
 1013 _IN userID $string
 1014 _IN setID $string
 1015 _RETURN $integer
 1016 =end WSDL
 1017 =cut
 1018 sub delete_user_set {
 1019     my ($self,$authenKey,$courseName,$userID,$setID) = @_;
 1020     my $soapEnv = new WebworkSOAP($authenKey,$courseName);
 1021     return $soapEnv->{db}->deleteUserSet($userID,$setID);
 1022 }
 1023 
 1024 
 1025 1;

aubreyja at gmail dot com
ViewVC Help
Powered by ViewVC 1.0.9