@@ -283,10 +283,6 @@ sub getGlobalSettings ($self, %args) {
283
283
my @settings = map {
284
284
{ $_ -> get_inflated_columns };
285
285
} @global_settings ;
286
- for my $setting (@settings ) {
287
- # The default_value is stored as a JSON and needs to be parsed.
288
- $setting -> {default_value } = $setting -> {default_value }-> {value };
289
- }
290
286
return \@settings ;
291
287
}
292
288
@@ -323,7 +319,6 @@ sub getGlobalSetting ($self, %args) {
323
319
unless $global_setting ;
324
320
return $global_setting if $args {as_result_set };
325
321
my $setting_to_return = { $global_setting -> get_inflated_columns };
326
- $setting_to_return -> {default_value } = $setting_to_return -> {default_value }-> {value };
327
322
return $setting_to_return ;
328
323
}
329
324
@@ -356,20 +351,11 @@ sub getCourseSettings ($self, %args) {
356
351
my @settings_from_db = $course -> course_settings;
357
352
358
353
return \@settings_from_db if $args {as_result_set };
359
- my @settings_to_return = ($args {merged })
360
- ? map {
361
- { $_ -> get_inflated_columns, $_ -> global_setting-> get_inflated_columns };
362
- } @settings_from_db
363
- : map {
364
- { $_ -> get_inflated_columns };
365
- } @settings_from_db ;
366
-
367
- for my $setting (@settings_to_return ) {
368
- # value and default_value are decoded from JSON as a hash. Return to a value.
369
- for my $key (qw/ default_value value/ ) {
370
- $setting -> {$key } = $setting -> {$key }-> {value } if defined ($setting -> {$key });
371
- }
372
- }
354
+ my @settings_to_return = map {
355
+ $args {merged }
356
+ ? { $_ -> get_inflated_columns, $_ -> global_setting-> get_inflated_columns }
357
+ : { $_ -> get_inflated_columns };
358
+ } @settings_from_db ;
373
359
return \@settings_to_return ;
374
360
}
375
361
@@ -400,25 +386,31 @@ A single course setting as either a hashref or a C<DBIx::Class::ResultSet::Cours
400
386
=cut
401
387
402
388
sub getCourseSetting ($self , %args ) {
403
-
404
389
my $global_setting = $self -> getGlobalSetting(info => $args {info }, as_result_set => 1);
405
390
DB::Exception::SettingNotFound-> throw(
406
- message => " The setting with name: '" . $args {info }-> {setting_name } . " ' is not a defined info." )
391
+ message => " The global setting with name: '" . $args {info }-> {setting_name } . " ' is not a defined info." )
407
392
unless defined ($global_setting );
408
393
409
394
my $course = $self -> getCourse(info => getCourseInfo($args {info }), as_result_set => 1);
410
395
my $setting = $course -> course_settings-> find({ setting_id => $global_setting -> setting_id });
411
396
397
+ DB::Exception::SettingNotFound-> throw(
398
+ message => ' The course setting with '
399
+ . (
400
+ $args {info }-> {setting_name } ? " name: '$args {info}->{setting_name}'"
401
+ : " setting_id of $args {info}->{setting_id} is not a found in the course "
402
+ )
403
+ . (
404
+ $args {info }-> {course_name } ? (" with name '" . $args {info }-> {course_name } . " '" )
405
+ : " with course_id of $args {info}->{course_id}"
406
+ )
407
+ ) unless defined ($setting );
408
+
412
409
return $setting if $args {as_result_set };
413
410
my $setting_to_return =
414
411
$args {merged }
415
412
? { $setting -> get_inflated_columns, $setting -> global_setting-> get_inflated_columns }
416
413
: { $setting -> get_inflated_columns };
417
-
418
- # value and default_value are decoded from JSON as a hash. Return to a value.
419
- for my $key (qw/ default_value value/ ) {
420
- $setting_to_return -> {$key } = $setting_to_return -> {$key }-> {value } if defined ($setting_to_return -> {$key });
421
- }
422
414
return $setting_to_return ;
423
415
}
424
416
@@ -451,44 +443,30 @@ A single course setting as either a hashref or a C<DBIx::Class::ResultSet::Cours
451
443
=cut
452
444
453
445
sub updateCourseSetting ($self , %args ) {
454
- my $course = $self -> getCourse(info => getCourseInfo($args {info }), as_result_set => 1);
455
-
446
+ my $course = $self -> getCourse(info => getCourseInfo($args {info }), as_result_set => 1);
456
447
my $global_setting = $self -> getGlobalSetting(info => getSettingInfo($args {info }));
457
448
458
449
my $course_setting = $course -> course_settings-> find({
459
450
setting_id => $global_setting -> {setting_id }
460
451
});
461
452
462
- # Check that the setting is valid.
463
-
464
453
my $params = {
465
454
course_id => $course -> course_id,
466
455
setting_id => $global_setting -> {setting_id },
467
- value => { value => $args {params }{value } }
456
+ value => $args {params }{value }
468
457
};
469
458
470
- # remove the following fields before checking for valid settings:
471
- delete $global_setting -> {$_ } for (qw/ setting_id course_id/ );
459
+ isValidSetting($global_setting , $params -> {value });
472
460
473
- isValidSetting($global_setting , $params -> {value }{value });
474
-
475
- # The course_id must be deleted to ensure it is written to the database correctly.
476
- delete $params -> {course_id } if defined ($params -> {course_id });
477
-
478
- my $updated_course_setting =
461
+ my $up_setting =
479
462
defined ($course_setting ) ? $course_setting -> update($params ) : $course -> add_to_course_settings($params );
480
463
481
- return $updated_course_setting if $args {as_result_set };
464
+ return $up_setting if $args {as_result_set };
482
465
my $setting_to_return =
483
466
($args {merged })
484
- ? { $updated_course_setting -> get_inflated_columns,
485
- $updated_course_setting -> global_setting-> get_inflated_columns }
486
- : { $updated_course_setting -> get_inflated_columns };
467
+ ? { $up_setting -> get_inflated_columns, $up_setting -> global_setting-> get_inflated_columns }
468
+ : { $up_setting -> get_inflated_columns };
487
469
488
- # value and default_value are decoded from JSON as a hash. Return to a value.
489
- for my $key (qw/ default_value value/ ) {
490
- $setting_to_return -> {$key } = $setting_to_return -> {$key }-> {value } if defined ($setting_to_return -> {$key });
491
- }
492
470
return $setting_to_return ;
493
471
}
494
472
@@ -516,21 +494,8 @@ A single course setting as either a hashref or a C<DBIx::Class::ResultSet::Cours
516
494
=cut
517
495
518
496
sub deleteCourseSetting ($self , %args ) {
519
- my $setting = $self -> getCourseSetting(info => $args {info }, as_result_set => 1);
520
- my $deleted_setting = $setting -> delete ;
521
-
522
- return $deleted_setting if $args {as_result_set };
523
-
524
- my $setting_to_return =
525
- ($args {merged })
526
- ? { $deleted_setting -> get_inflated_columns, $deleted_setting -> global_setting-> get_inflated_columns }
527
- : { $deleted_setting -> get_inflated_columns };
528
-
529
- # value and default_value are decoded from JSON as a hash. Return to a value.
530
- for my $key (qw/ default_value value/ ) {
531
- $setting_to_return -> {$key } = $setting_to_return -> {$key }-> {value } if defined ($setting_to_return -> {$key });
532
- }
533
- return $setting_to_return ;
497
+ $self -> getCourseSetting(info => $args {info }, as_result_set => 1)-> delete ;
498
+ return ;
534
499
}
535
500
536
501
1;
0 commit comments