@@ -52,48 +52,45 @@ =head1 DESCRIPTION
5252use Try::Tiny;
5353use DBI;
5454
55-
5655BEGIN {
57- use File::Basename qw/ dirname/ ;
58- use Cwd qw/ abs_path/ ;
59- $main::bin_dir = abs_path( dirname(__FILE__ ) );
60- $main::lib_dir = dirname($main::bin_dir ) . ' /lib' ;
56+ use File::Basename qw/ dirname/ ;
57+ use Cwd qw/ abs_path/ ;
58+ $main::bin_dir = abs_path(dirname(__FILE__ ));
59+ $main::lib_dir = dirname($main::bin_dir ) . ' /lib' ;
6160}
6261
6362use lib " $main::lib_dir " ;
6463
6564use DB::Schema;
6665use DB::Schema::Result::CourseUser;
6766
68- my $verbose = 0;
67+ my $verbose = 0;
6968my $rebuild_db = 0;
7069GetOptions(
71- ' r|rebuild+' => \$rebuild_db ,
72- ' c|course=s' => \$course_name ,
73- ' v|verbose+' => \$verbose
70+ ' r|rebuild+' => \$rebuild_db ,
71+ ' c|course=s' => \$course_name ,
72+ ' v|verbose+' => \$verbose
7473) || pod2usage();
7574
7675my $ww2_dsn = " DBI:mysql:database=webwork;host=localhost;port=3306" ;
77- my $dbh = DBI-> connect ($ww2_dsn , " webworkWrite" , " password" ,
78- { RaiseError => 1, AutoCommit => 0 });
76+ my $dbh = DBI-> connect ($ww2_dsn , " webworkWrite" , " password" , { RaiseError => 1, AutoCommit => 0 });
7977
8078my $ww3_dsn = " DBI:mysql:database=webwork3;host=localhost;port=3306" ;
81- my $schema = DB::Schema-> connect ($ww3_dsn , " webworkWrite" , " password" );
79+ my $schema = DB::Schema-> connect ($ww3_dsn , " webworkWrite" , " password" );
8280
83- my $course_rs = $schema -> resultset(' Course' );
84- my $user_rs = $schema -> resultset(' User' );
81+ my $course_rs = $schema -> resultset(' Course' );
82+ my $user_rs = $schema -> resultset(' User' );
8583my $problem_set_rs = $schema -> resultset(' ProblemSet' );
8684
8785# test if the database tables are created.
8886try {
8987 $course_rs -> getCourses();
90- }
91- catch {
88+ } catch {
9289 $schema -> deploy;
9390};
9491
9592my %PERMISSIONS = (
96- 0 => " student" ,
93+ 0 => " student" ,
9794 10 => " instructor" ,
9895 20 => " admin"
9996);
@@ -103,53 +100,52 @@ BEGIN
103100addUsers();
104101addProblemSets();
105102
106-
107103my $db_tables = {};
108104
109105sub rebuild {
110106 # find the course users
111- my @course_users = $user_rs -> getUsers({course_name => $course_name });
107+ my @course_users = $user_rs -> getUsers({ course_name => $course_name });
112108
113109 # # delete the users
114110
115- for my $course_user (@course_users ){
116- my @user_courses = $course_rs -> getUserCourses({user_id => $course_user -> {user_id }});
117- # if each user is only in one course, delete the global user
111+ for my $course_user (@course_users ) {
112+ my @user_courses = $course_rs -> getUserCourses({ user_id => $course_user -> {user_id } });
113+ # if each user is only in one course, delete the global user
118114 if (scalar (@user_courses ) == 1) {
119- $user_rs -> deleteGlobalUser({user_id => $course_user -> {user_id }});
115+ $user_rs -> deleteGlobalUser({ user_id => $course_user -> {user_id } });
120116 say " deleting the global user with username: $course_user ->{username}" if $verbose ;
121117 } else {
122- $user_rs -> deleteUser({course_name => $course_name , user_id => $course_user -> {user_id }});
118+ $user_rs -> deleteUser({ course_name => $course_name , user_id => $course_user -> {user_id } });
123119 say " From course $course_name , deleting user $course_user ->{username}" if $verbose ;
124120 }
125121 }
126122
127123 # # delete the problem sets
128124
129- my @problem_sets = $problem_set_rs -> getProblemSets({course_name => $course_name });
125+ my @problem_sets = $problem_set_rs -> getProblemSets({ course_name => $course_name });
130126 for my $problem_set (@problem_sets ) {
131- $problem_set_rs -> deleteProblemSet({course_name => $course_name , set_id => $problem_set -> {set_id }});
127+ $problem_set_rs -> deleteProblemSet({ course_name => $course_name , set_id => $problem_set -> {set_id } });
132128 say " deleting problem set: $problem_set ->{set_name}" if $verbose ;
133129 }
134130
135131 # delete the course
136- my $course = $course_rs -> find({course_name => $course_name });
137- $course -> delete if $course ;
132+ my $course = $course_rs -> find({ course_name => $course_name });
133+ $course -> delete if $course ;
138134 say " deleting the course $course_name " if $verbose ;
139135 return ;
140136}
141137
142138sub buildTables {
143139 $db_tables = {};
144- for my $name (qw/ user key password past_answer/ ){
140+ for my $name (qw/ user key password past_answer/ ) {
145141 $db_tables -> {$name } = $course_name . " _" . $name ;
146142 }
147143 return ;
148144}
149145
150146sub addCourse {
151147 say " adding course: $course_name " if $verbose ;
152- $course_rs -> addCourse({course_name => $course_name });
148+ $course_rs -> addCourse({ course_name => $course_name });
153149 return ;
154150}
155151
@@ -158,74 +154,72 @@ sub addUsers {
158154 my $perm_table = $course_name . " _permission" ;
159155
160156 my $sth = $dbh -> prepare(" SELECT * FROM `$user_table `" );
161- $sth -> execute();
162- my $ref = $sth -> fetchall_arrayref({});
163- my @keys = keys %{$ref -> [0]};
157+ $sth -> execute();
158+ my $ref = $sth -> fetchall_arrayref({});
159+ my @keys = keys %{ $ref -> [0] };
164160
165- my @user_fields = grep {
166- $_ ne " login_params" && $_ ne " user_id" && $_ ne " email"
167- } $user_rs -> result_source-> columns;
161+ my @user_fields =
162+ grep { $_ ne " login_params" && $_ ne " user_id" && $_ ne " email" } $user_rs -> result_source-> columns;
168163 my @course_user_param_fields = keys %$DB::Schema::Result::CourseUser::VALID_PARAMS ;
169- my @course_user_fields = grep {
170- $_ !~ / \_ id$ /x && $_ ne " params"
171- } $schema -> resultset(" CourseUser" )-> result_source-> columns;
164+ my @course_user_fields =
165+ grep { $_ !~ / \_ id$ /x && $_ ne " params" } $schema -> resultset(" CourseUser" )-> result_source-> columns;
172166
173167 for my $r (@$ref ) {
174168 my $user_params = {
175169 username => $r -> {user_id },
176- email => $r -> {email_address }
170+ email => $r -> {email_address }
177171 };
178- foreach my $key (@user_fields ){
172+ foreach my $key (@user_fields ) {
179173 $user_params -> {$key } = $r -> {$key } if defined ($r -> {$key });
180174 }
181175 # dd $user_params;
182- my $user = $user_rs -> find({username => $user_params -> {username }});
176+ my $user = $user_rs -> find({ username => $user_params -> {username } });
183177 $user_rs -> addGlobalUser($user_params ) unless $user ;
184- say " Adding user with username $r ->{user_id}" if $verbose && ! defined ($user );
178+ say " Adding user with username $r ->{user_id}" if $verbose && !defined ($user );
185179 my $course_user = {
186180 username => $r -> {user_id },
187- params => {}
181+ params => {}
188182 };
189183 for my $key (@course_user_fields ) {
190184 $course_user -> {$key } = $r -> {$key } if defined ($r -> {$key });
191185 }
192- foreach my $key (@course_user_param_fields ){
186+ foreach my $key (@course_user_param_fields ) {
193187 $course_user -> {params }-> {$key } = $r -> {$key } if defined ($r -> {$key });
194188 }
195189 my $user_id = $r -> {user_id };
196- my $sth2 = $dbh -> prepare(" SELECT * FROM `$perm_table ` WHERE user_id = '$user_id ';" );
190+ my $sth2 = $dbh -> prepare(" SELECT * FROM `$perm_table ` WHERE user_id = '$user_id ';" );
197191 $sth2 -> execute();
198192 my $perm = $sth2 -> fetchrow_hashref();
199- $course_user -> {role } = $PERMISSIONS {$perm -> {permission }};
200- $user_rs -> addUser({course_name => $course_name }, $course_user );
193+ $course_user -> {role } = $PERMISSIONS { $perm -> {permission } };
194+ $user_rs -> addUser({ course_name => $course_name }, $course_user );
201195 }
202196 return ;
203197}
204198
205199sub addProblemSets {
206200 my @hw_param_keys = keys %$DB::Schema::Result::ProblemSet::HWSet::VALID_PARAMS ;
207- my $set_table = $course_name . " _set" ;
208- my $sth = $dbh -> prepare(" SELECT * FROM `$set_table `" );
201+ my $set_table = $course_name . " _set" ;
202+ my $sth = $dbh -> prepare(" SELECT * FROM `$set_table `" );
209203 $sth -> execute();
210- my $ref = $sth -> fetchall_arrayref({});
211- my @keys = keys %{$ref -> [0]};
204+ my $ref = $sth -> fetchall_arrayref({});
205+ my @keys = keys %{ $ref -> [0] };
212206 # dd @keys;
213207 for my $r (@$ref ) {
214208 my $set_params = {
215209 set_name => $r -> {set_id },
216- dates => {},
217- params => {},
210+ dates => {},
211+ params => {},
218212 };
219- if ($r -> {assignment_type } eq ' default' ) { # it's a homework set
213+ if ($r -> {assignment_type } eq ' default' ) { # it's a homework set
220214 for my $key (@hw_param_keys ) {
221215 $set_params -> {params }-> {$key } = $r -> {$key } if defined ($r -> {$key });
222216 }
223217 for my $key (@DB::Schema::Result::ProblemSet::HWSet::VALID_DATES ) {
224- $set_params -> {dates }-> {$key } = $r -> {$key .' _date' } if defined ($r -> {$key . ' _date' });
218+ $set_params -> {dates }-> {$key } = $r -> { $key . ' _date' } if defined ($r -> { $key . ' _date' });
225219 }
226220 }
227221
228- $problem_set_rs -> addProblemSet({course_name => $course_name }, $set_params );
222+ $problem_set_rs -> addProblemSet({ course_name => $course_name }, $set_params );
229223 say " Adding set with name: $set_params ->{set_name}" if $verbose ;
230224 }
231225 return ;
0 commit comments