[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 5064 - (download) (as text) (annotate)
Thu Jun 28 21:31:48 2007 UTC (5 years, 11 months ago) by mleventi
File size: 26674 byte(s)
More bugs squashed

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

aubreyja at gmail dot com
ViewVC Help
Powered by ViewVC 1.0.9