[system] / branches / rel-2-4-patches / webwork2 / lib / WebworkSOAP.pm Repository:
ViewVC logotype

View of /branches/rel-2-4-patches/webwork2/lib/WebworkSOAP.pm

Parent Directory Parent Directory | Revision Log Revision Log


Revision 5153 - (download) (as text) (annotate)
Thu Jul 12 18:37:23 2007 UTC (5 years, 11 months ago) by mleventi
Original Path: trunk/webwork2/lib/WebworkSOAP.pm
File size: 27188 byte(s)
New Gradebook function.

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

aubreyja at gmail dot com
ViewVC Help
Powered by ViewVC 1.0.9