[system] / trunk / webwork-modperl / lib / WebworkSOAP.pm Repository:
ViewVC logotype

View of /trunk/webwork-modperl/lib/WebworkSOAP.pm

Parent Directory Parent Directory | Revision Log Revision Log


Revision 5009 - (download) (as text) (annotate)
Thu Jun 21 20:17:02 2007 UTC (5 years, 11 months ago) by mleventi
File size: 25297 byte(s)
Inital Commit of SOAP services.

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

aubreyja at gmail dot com
ViewVC Help
Powered by ViewVC 1.0.9