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

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

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

Revision 5057 Revision 5714
3use strict; 3use strict;
4 4
5use WeBWorK::Utils qw(pretty_print_rh); 5use WeBWorK::Utils qw(pretty_print_rh);
6use WeBWorK::Utils::CourseManagement qw(addCourse renameCourse deleteCourse listCourses archiveCourse listArchivedCourses unarchiveCourse); 6use WeBWorK::Utils::CourseManagement qw(addCourse renameCourse deleteCourse listCourses archiveCourse listArchivedCourses unarchiveCourse);
7use WeBWorK::DB; 7use WeBWorK::DB;
8use WeBWorK::DB::Utils qw(initializeUserProblem);
8use WeBWorK::CourseEnvironment; 9use WeBWorK::CourseEnvironment;
9use WeBWorK::ContentGenerator::Instructor; 10use WeBWorK::ContentGenerator::Instructor;
10 11
11use WebworkSOAP::Classes::GlobalSet; 12use WebworkSOAP::Classes::GlobalSet;
12use WebworkSOAP::Classes::UserSet; 13use WebworkSOAP::Classes::UserSet;
29 SOAPERROR_KEY_NOT_FOUND => 7, 30 SOAPERROR_KEY_NOT_FOUND => 7,
30 SOAPERROR_AUTHEN_FAILED => 8 31 SOAPERROR_AUTHEN_FAILED => 8
31}; 32};
32 33
33our %SeedCE; 34our %SeedCE;
35%WebworkSOAP::SeedCE = %WeBWorK::SeedCE;
36
34$WebworkSOAP::SeedCE{soap_authen_key} = "123456789123456789"; 37$WebworkSOAP::SeedCE{soap_authen_key} = "123456789123456789";
35$WebworkSOAP::SeedCE{webwork_dir} = "/home/mleventi/webwork_projects/webwork/webwork2/"; 38#$WebworkSOAP::SeedCE{webwork_dir} = $ENV{WEBWORK_ROOT}|| warn "\$ENV{WEBWORK_ROOT} is undefined -- check your httpd configuration. Error caught ";
39
36 40
37sub new { 41sub new {
38 my($self,$authenKey,$courseName) = @_; 42 my($self,$authenKey,$courseName) = @_;
39 $self = {}; 43 $self = {};
40 #Construct Course 44 #Construct Course
41 my $ce = eval { new WeBWorK::CourseEnvironment({%SeedCE, courseName => $courseName }) }; 45 my $ce = eval { new WeBWorK::CourseEnvironment({%SeedCE, courseName => $courseName }) };
42 $@ and soap_fault_major("Course Environment cannot be constructed."); 46 $@ and soap_fault_major("Course Environment cannot be constructed.<br>$@");
43 #Authentication Check 47 #Authentication Check
44 if($ce->{soap_authen_key} != $authenKey) { 48 if($ce->{soap_authen_key} != $authenKey) {
45 soap_fault_authen(); 49 soap_fault_authen();
46 } 50 }
47 #Construct DB handle 51 #Construct DB handle
48 my $db = eval { new WeBWorK::DB($ce->{dbLayout}); }; 52 my $db = eval { new WeBWorK::DB($ce->{dbLayout}); };
49 $@ and soap_fault_major("Failed to initialize database handle."); 53 $@ and soap_fault_major("Failed to initialize database handle.<br>$@");
50 $self->{db} = $db; 54 $self->{db} = $db;
51 $self->{ce} = $ce; 55 $self->{ce} = $ce;
52 bless $self; 56 bless $self;
53 return $self; 57 return $self;
54} 58}
95 my $ce = eval { new WeBWorK::CourseEnvironment({%WeBWorK::SeedCE })}; 99 my $ce = eval { new WeBWorK::CourseEnvironment({%WeBWorK::SeedCE })};
96 $@ and soap_fault_major("Internal Course Environment cannot be constructed."); 100 $@ and soap_fault_major("Internal Course Environment cannot be constructed.");
97 if($authenKey != $WebworkSOAP::SeedCE{soap_authen_key}) { 101 if($authenKey != $WebworkSOAP::SeedCE{soap_authen_key}) {
98 soap_fault_authen; 102 soap_fault_authen;
99 } 103 }
100 return $WebworkSOAP::SeedCE{soap_authen_key};
101 $@ and soap_fault_major("Course Environment cannot be constructed."); 104 $@ and soap_fault_major("Course Environment cannot be constructed.");
102 my @test = listCourses($ce); 105 my @test = listCourses($ce);
103 return \@test; 106 return \@test;
104} 107}
105 108
169 eval { $db->addUserProblem($UserProblem) }; 172 eval { $db->addUserProblem($UserProblem) };
170 } 173 }
171 return @results; 174 return @results;
172} 175}
173 176
177=pod
178=begin WSDL
179_IN authenKey $string
180_IN courseName $string
181_IN userIDs @string
182_IN setID $string
183_RETURN @string
184=end WSDL
185=cut
186sub 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=pod
203=begin WSDL
204_IN authenKey $string
205_IN courseName $string
206_IN setID $string
207_RETURN @string
208=end WSDL
209=cut
210sub get_set_data {
211 my ($self,$authenKey,$courseName,$setID) = @_;
212 my $soapEnv = new WebworkSOAP($authenKey,$courseName);
213 my $setData = $soapEnv->{db}->getGlobalSet($setID);
214 if(not defined $setData) {
215 return -1;
216 }
217 my $set = new WebworkSOAP::Classes::GlobalSet($setData);
218 return $set;
219
220
221}
174 222
175#################################################################### 223####################################################################
176##FUNCTIONS DIRECTLY MAPPED TO FUNCTIONS IN DB.pm 224##FUNCTIONS DIRECTLY MAPPED TO FUNCTIONS IN DB.pm
177#################################################################### 225####################################################################
178############################################### 226###############################################
182=pod 230=pod
183=begin WSDL 231=begin WSDL
184_IN authenKey $string 232_IN authenKey $string
185_IN courseName $string 233_IN courseName $string
186_IN record $WebworkSOAP::Classes::Password 234_IN record $WebworkSOAP::Classes::Password
187_RETURN $integer 235_RETURN $string
188=end WSDL 236=end WSDL
189=cut 237=cut
190sub add_password { 238sub add_password {
191 my ($self,$authenKey,$courseName,$record) = @_; 239 my ($self,$authenKey,$courseName,$record) = @_;
192 my $soapEnv = new WebworkSOAP($authenKey,$courseName); 240 my $soapEnv = new WebworkSOAP($authenKey,$courseName);
198=pod 246=pod
199=begin WSDL 247=begin WSDL
200_IN authenKey $string 248_IN authenKey $string
201_IN courseName $string 249_IN courseName $string
202_IN record $WebworkSOAP::Classes::Password 250_IN record $WebworkSOAP::Classes::Password
203_RETURN $integer 251_RETURN $string
204=end WSDL 252=end WSDL
205=cut 253=cut
206sub put_password { 254sub put_password {
207 my ($self,$authenKey,$courseName,$record) = @_; 255 my ($self,$authenKey,$courseName,$record) = @_;
208 my $soapEnv = new WebworkSOAP($authenKey,$courseName); 256 my $soapEnv = new WebworkSOAP($authenKey,$courseName);
268=pod 316=pod
269=begin WSDL 317=begin WSDL
270_IN authenKey $string 318_IN authenKey $string
271_IN courseName $string 319_IN courseName $string
272_IN record $WebworkSOAP::Classes::Permission 320_IN record $WebworkSOAP::Classes::Permission
273_RETURN $integer 321_RETURN $string
274=end WSDL 322=end WSDL
275=cut 323=cut
276sub add_permission { 324sub add_permission {
277 my ($self,$authenKey,$courseName,$record) = @_; 325 my ($self,$authenKey,$courseName,$record) = @_;
278 my $soapEnv = new WebworkSOAP($authenKey,$courseName); 326 my $soapEnv = new WebworkSOAP($authenKey,$courseName);
284=pod 332=pod
285=begin WSDL 333=begin WSDL
286_IN authenKey $string 334_IN authenKey $string
287_IN courseName $string 335_IN courseName $string
288_IN record $WebworkSOAP::Classes::Permission 336_IN record $WebworkSOAP::Classes::Permission
289_RETURN $integer 337_RETURN $string
290=end WSDL 338=end WSDL
291=cut 339=cut
292sub put_permission { 340sub put_permission {
293 my ($self,$authenKey,$courseName,$record) = @_; 341 my ($self,$authenKey,$courseName,$record) = @_;
294 my $soapEnv = new WebworkSOAP($authenKey,$courseName); 342 my $soapEnv = new WebworkSOAP($authenKey,$courseName);
354=pod 402=pod
355=begin WSDL 403=begin WSDL
356_IN authenKey $string 404_IN authenKey $string
357_IN courseName $string 405_IN courseName $string
358_IN record $WebworkSOAP::Classes::Key 406_IN record $WebworkSOAP::Classes::Key
359_RETURN $integer 407_RETURN $string
360=end WSDL 408=end WSDL
361=cut 409=cut
362sub add_key { 410sub add_key {
363 my ($self,$authenKey,$courseName,$record) = @_; 411 my ($self,$authenKey,$courseName,$record) = @_;
364 my $soapEnv = new WebworkSOAP($authenKey,$courseName); 412 my $soapEnv = new WebworkSOAP($authenKey,$courseName);
370=pod 418=pod
371=begin WSDL 419=begin WSDL
372_IN authenKey $string 420_IN authenKey $string
373_IN courseName $string 421_IN courseName $string
374_IN record $WebworkSOAP::Classes::Key 422_IN record $WebworkSOAP::Classes::Key
375_RETURN $integer 423_RETURN $string
376=end WSDL 424=end WSDL
377=cut 425=cut
378sub put_key { 426sub put_key {
379 my ($self,$authenKey,$courseName,$record) = @_; 427 my ($self,$authenKey,$courseName,$record) = @_;
380 my $soapEnv = new WebworkSOAP($authenKey,$courseName); 428 my $soapEnv = new WebworkSOAP($authenKey,$courseName);
440=pod 488=pod
441=begin WSDL 489=begin WSDL
442_IN authenKey $string 490_IN authenKey $string
443_IN courseName $string 491_IN courseName $string
444_IN record $WebworkSOAP::Classes::User 492_IN record $WebworkSOAP::Classes::User
445_RETURN $integer 493_RETURN $string
446=end WSDL 494=end WSDL
447=cut 495=cut
448sub add_user { 496sub add_user {
449 my ($self,$authenKey,$courseName,$record) = @_; 497 my ($self,$authenKey,$courseName,$record) = @_;
450 my $soapEnv = new WebworkSOAP($authenKey,$courseName); 498 my $soapEnv = new WebworkSOAP($authenKey,$courseName);
456=pod 504=pod
457=begin WSDL 505=begin WSDL
458_IN authenKey $string 506_IN authenKey $string
459_IN courseName $string 507_IN courseName $string
460_IN record $WebworkSOAP::Classes::User 508_IN record $WebworkSOAP::Classes::User
461_RETURN $integer 509_RETURN $string
462=end WSDL 510=end WSDL
463=cut 511=cut
464sub put_user { 512sub put_user {
465 my ($self,$authenKey,$courseName,$record) = @_; 513 my ($self,$authenKey,$courseName,$record) = @_;
466 my $soapEnv = new WebworkSOAP($authenKey,$courseName); 514 my $soapEnv = new WebworkSOAP($authenKey,$courseName);
522=pod 570=pod
523=begin WSDL 571=begin WSDL
524_IN authenKey $string 572_IN authenKey $string
525_IN courseName $string 573_IN courseName $string
526_IN userID $string 574_IN userID $string
527_RETURN $integer 575_RETURN $string
528=end WSDL 576=end WSDL
529=cut 577=cut
530sub delete_user { 578sub delete_user {
531 my ($self,$authenKey,$courseName,$userID) = @_; 579 my ($self,$authenKey,$courseName,$userID) = @_;
532 my $soapEnv = new WebworkSOAP($authenKey,$courseName); 580 my $soapEnv = new WebworkSOAP($authenKey,$courseName);
540=pod 588=pod
541=begin WSDL 589=begin WSDL
542_IN authenKey $string 590_IN authenKey $string
543_IN courseName $string 591_IN courseName $string
544_IN record $WebworkSOAP::Classes::GlobalSet 592_IN record $WebworkSOAP::Classes::GlobalSet
545_RETURN $integer 593_RETURN $string
546=end WSDL 594=end WSDL
547=cut 595=cut
548sub add_global_set { 596sub add_global_set {
549 my ($self,$authenKey,$courseName,$record) = @_; 597 my ($self,$authenKey,$courseName,$record) = @_;
550 my $soapEnv = new WebworkSOAP($authenKey,$courseName); 598 my $soapEnv = new WebworkSOAP($authenKey,$courseName);
556=pod 604=pod
557=begin WSDL 605=begin WSDL
558_IN authenKey $string 606_IN authenKey $string
559_IN courseName $string 607_IN courseName $string
560_IN record $WebworkSOAP::Classes::GlobalSet 608_IN record $WebworkSOAP::Classes::GlobalSet
561_RETURN $integer 609_RETURN $string
562=end WSDL 610=end WSDL
563=cut 611=cut
564sub put_global_set { 612sub put_global_set {
565 my ($self,$authenKey,$courseName,$record) = @_; 613 my ($self,$authenKey,$courseName,$record) = @_;
566 my $soapEnv = new WebworkSOAP($authenKey,$courseName); 614 my $soapEnv = new WebworkSOAP($authenKey,$courseName);
642=pod 690=pod
643=begin WSDL 691=begin WSDL
644_IN authenKey $string 692_IN authenKey $string
645_IN courseName $string 693_IN courseName $string
646_IN setID $string 694_IN setID $string
647_RETURN $integer 695_RETURN $string
648=end WSDL 696=end WSDL
649=cut 697=cut
650sub delete_global_set { 698sub delete_global_set {
651 my ($self,$authenKey,$courseName,$setID) = @_; 699 my ($self,$authenKey,$courseName,$setID) = @_;
652 my $soapEnv = new WebworkSOAP($authenKey,$courseName); 700 my $soapEnv = new WebworkSOAP($authenKey,$courseName);
660=pod 708=pod
661=begin WSDL 709=begin WSDL
662_IN authenKey $string 710_IN authenKey $string
663_IN courseName $string 711_IN courseName $string
664_IN record $WebworkSOAP::Classes::GlobalProblem 712_IN record $WebworkSOAP::Classes::GlobalProblem
665_RETURN $integer 713_RETURN $string
666=end WSDL 714=end WSDL
667=cut 715=cut
668sub add_global_problem { 716sub add_global_problem {
669 my ($self,$authenKey,$courseName,$record) = @_; 717 my ($self,$authenKey,$courseName,$record) = @_;
670 my $soapEnv = new WebworkSOAP($authenKey,$courseName); 718 my $soapEnv = new WebworkSOAP($authenKey,$courseName);
676=pod 724=pod
677=begin WSDL 725=begin WSDL
678_IN authenKey $string 726_IN authenKey $string
679_IN courseName $string 727_IN courseName $string
680_IN record $WebworkSOAP::Classes::GlobalProblem 728_IN record $WebworkSOAP::Classes::GlobalProblem
681_RETURN $integer 729_RETURN $string
682=end WSDL 730=end WSDL
683=cut 731=cut
684sub put_global_problem { 732sub put_global_problem {
685 my ($self,$authenKey,$courseName,$record) = @_; 733 my ($self,$authenKey,$courseName,$record) = @_;
686 my $soapEnv = new WebworkSOAP($authenKey,$courseName); 734 my $soapEnv = new WebworkSOAP($authenKey,$courseName);
689 737
690=pod 738=pod
691=begin WSDL 739=begin WSDL
692_IN authenKey $string 740_IN authenKey $string
693_IN courseName $string 741_IN courseName $string
694_IN problemID $string 742_IN setID $string
695_RETURN @string of names objects. 743_RETURN @string of names objects.
696=end WSDL 744=end WSDL
697=cut 745=cut
698sub list_global_problems { 746sub list_global_problems {
699 my ($self,$authenKey,$courseName,$problemID) = @_; 747 my ($self,$authenKey,$courseName,$setID) = @_;
700 my $soapEnv = new WebworkSOAP($authenKey,$courseName); 748 my $soapEnv = new WebworkSOAP($authenKey,$courseName);
701 my @tempArray = $soapEnv->{db}->listGlobalProblems($problemID); 749 my @tempArray = $soapEnv->{db}->listGlobalProblems($setID);
702 return \@tempArray; 750 return \@tempArray;
703} 751}
704 752
705=pod 753=pod
706=begin WSDL 754=begin WSDL
764=begin WSDL 812=begin WSDL
765_IN authenKey $string 813_IN authenKey $string
766_IN courseName $string 814_IN courseName $string
767_IN setID $string 815_IN setID $string
768_IN problemID $string 816_IN problemID $string
769_RETURN $integer 817_RETURN $string
770=end WSDL 818=end WSDL
771=cut 819=cut
772sub delete_global_problem { 820sub delete_global_problem {
773 my ($self,$authenKey,$courseName,$setID,$problemID) = @_; 821 my ($self,$authenKey,$courseName,$setID,$problemID) = @_;
774 my $soapEnv = new WebworkSOAP($authenKey,$courseName); 822 my $soapEnv = new WebworkSOAP($authenKey,$courseName);
782=pod 830=pod
783=begin WSDL 831=begin WSDL
784_IN authenKey $string 832_IN authenKey $string
785_IN courseName $string 833_IN courseName $string
786_IN record $WebworkSOAP::Classes::UserProblem 834_IN record $WebworkSOAP::Classes::UserProblem
787_RETURN $integer 835_RETURN $string
788=end WSDL 836=end WSDL
789=cut 837=cut
790sub add_user_problem { 838sub add_user_problem {
791 my ($self,$authenKey,$courseName,$record) = @_; 839 my ($self,$authenKey,$courseName,$record) = @_;
792 my $soapEnv = new WebworkSOAP($authenKey,$courseName); 840 my $soapEnv = new WebworkSOAP($authenKey,$courseName);
798=pod 846=pod
799=begin WSDL 847=begin WSDL
800_IN authenKey $string 848_IN authenKey $string
801_IN courseName $string 849_IN courseName $string
802_IN record $WebworkSOAP::Classes::UserProblem 850_IN record $WebworkSOAP::Classes::UserProblem
803_RETURN $integer 851_RETURN $string
804=end WSDL 852=end WSDL
805=cut 853=cut
806sub put_user_problem { 854sub put_user_problem {
807 my ($self,$authenKey,$courseName,$record) = @_; 855 my ($self,$authenKey,$courseName,$record) = @_;
808 my $soapEnv = new WebworkSOAP($authenKey,$courseName); 856 my $soapEnv = new WebworkSOAP($authenKey,$courseName);
889_IN authenKey $string 937_IN authenKey $string
890_IN courseName $string 938_IN courseName $string
891_IN userID $string 939_IN userID $string
892_IN setID $string 940_IN setID $string
893_IN problemID $string 941_IN problemID $string
894_RETURN $integer 942_RETURN $string
895=end WSDL 943=end WSDL
896=cut 944=cut
897sub delete_user_problem { 945sub delete_user_problem {
898 my ($self,$authenKey,$courseName,$userID,$setID,$problemID) = @_; 946 my ($self,$authenKey,$courseName,$userID,$setID,$problemID) = @_;
899 my $soapEnv = new WebworkSOAP($authenKey,$courseName); 947 my $soapEnv = new WebworkSOAP($authenKey,$courseName);
907=pod 955=pod
908=begin WSDL 956=begin WSDL
909_IN authenKey $string 957_IN authenKey $string
910_IN courseName $string 958_IN courseName $string
911_IN record $WebworkSOAP::Classes::UserSet 959_IN record $WebworkSOAP::Classes::UserSet
912_RETURN $integer 960_RETURN $string
913=end WSDL 961=end WSDL
914=cut 962=cut
915sub add_user_set { 963sub add_user_set {
916 my ($self,$authenKey,$courseName,$record) = @_; 964 my ($self,$authenKey,$courseName,$record) = @_;
917 my $soapEnv = new WebworkSOAP($authenKey,$courseName); 965 my $soapEnv = new WebworkSOAP($authenKey,$courseName);
923=pod 971=pod
924=begin WSDL 972=begin WSDL
925_IN authenKey $string 973_IN authenKey $string
926_IN courseName $string 974_IN courseName $string
927_IN record $WebworkSOAP::Classes::UserSet 975_IN record $WebworkSOAP::Classes::UserSet
928_RETURN $integer 976_RETURN $string
929=end WSDL 977=end WSDL
930=cut 978=cut
931sub put_user_set { 979sub put_user_set {
932 my ($self,$authenKey,$courseName,$record) = @_; 980 my ($self,$authenKey,$courseName,$record) = @_;
933 my $soapEnv = new WebworkSOAP($authenKey,$courseName); 981 my $soapEnv = new WebworkSOAP($authenKey,$courseName);
1010=begin WSDL 1058=begin WSDL
1011_IN authenKey $string 1059_IN authenKey $string
1012_IN courseName $string 1060_IN courseName $string
1013_IN userID $string 1061_IN userID $string
1014_IN setID $string 1062_IN setID $string
1015_RETURN $integer 1063_RETURN $string
1016=end WSDL 1064=end WSDL
1017=cut 1065=cut
1018sub delete_user_set { 1066sub delete_user_set {
1019 my ($self,$authenKey,$courseName,$userID,$setID) = @_; 1067 my ($self,$authenKey,$courseName,$userID,$setID) = @_;
1020 my $soapEnv = new WebworkSOAP($authenKey,$courseName); 1068 my $soapEnv = new WebworkSOAP($authenKey,$courseName);

Legend:
Removed from v.5057  
changed lines
  Added in v.5714

aubreyja at gmail dot com
ViewVC Help
Powered by ViewVC 1.0.9