[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 5226 - (download) (as text) (annotate)
Tue Jul 31 17:56:34 2007 UTC (5 years, 9 months ago) by gage
File size: 27329 byte(s)
This seems to be a more stable way to discover the root directory of webwork.

For some reason $ENV{WEBWORK_ROOT} is occasionally undefined.

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

aubreyja at gmail dot com
ViewVC Help
Powered by ViewVC 1.0.9