From: Remington Steed Date: Tue, 7 Jul 2015 20:08:23 +0000 (-0400) Subject: LP#1379815 Better error handling X-Git-Url: https://old-git.evergreen-ils.org/?a=commitdiff_plain;h=9ab5f43528be4007fe194e9908ed6bc7b22387c4;p=working%2FEvergreen.git LP#1379815 Better error handling This commit adds more thorough error checking and handling for the stat cat import feature, including adding two custom import error codes. Signed-off-by: Remington Steed --- diff --git a/Open-ILS/src/perlmods/lib/OpenILS/Application/Vandelay.pm b/Open-ILS/src/perlmods/lib/OpenILS/Application/Vandelay.pm index bb1bc410b5..0e7599d689 100644 --- a/Open-ILS/src/perlmods/lib/OpenILS/Application/Vandelay.pm +++ b/Open-ILS/src/perlmods/lib/OpenILS/Application/Vandelay.pm @@ -1924,16 +1924,28 @@ sub import_record_asset_list_impl { push (@$stat_cat_entries, $stat_cat_entry) if $stat_cat_entry; } } else { - $logger->warn("Bad format for stat cat data ($stat_cat_pair), should be like: CAT 1|VALUE 1"); + $$report_args{import_error} = "import.item.invalid.stat_cat_format"; + last; } if (!$stat_cat or !$stat_cat_entry) { - $logger->warn("Invalid stat cat data ($stat_cat_pair): " . $e->die_event); + $$report_args{import_error} = "import.item.invalid.stat_cat_data"; + last; } } + if ($$report_args{import_error}) { + $logger->error("vl: invalid stat cat data: " . $item->stat_cat_data); + respond_with_status($report_args); + next; + } $copy->stat_cat_entries( $stat_cat_entries ); $copy->ischanged(1); $evt = OpenILS::Application::Cat::AssetCommon->update_copy_stat_entries($e, $copy, 0, 1); #delete_stats=0, add_or_update_only=1 + if($evt) { + $$report_args{evt} = $evt; + respond_with_status($report_args); + next; + } } # set the import data on the import item diff --git a/Open-ILS/src/sql/Pg/950.data.seed-values.sql b/Open-ILS/src/sql/Pg/950.data.seed-values.sql index ba59c4b816..d06610e474 100644 --- a/Open-ILS/src/sql/Pg/950.data.seed-values.sql +++ b/Open-ILS/src/sql/Pg/950.data.seed-values.sql @@ -10348,6 +10348,10 @@ INSERT INTO vandelay.import_error ( code, description ) VALUES ( 'import.item.invalid.circ_as_type', oils_i18n_gettext('import.item.invalid.circ_as_type', 'Invalid value for "circ_as_type"', 'vie', 'description') ); INSERT INTO vandelay.import_error ( code, description ) VALUES ( 'import.record.perm_failure', oils_i18n_gettext('import.record.perm_failure', 'Perm failure creating a record', 'vie', 'description') ); +INSERT INTO vandelay.import_error ( code, description ) VALUES ( + 'import.item.invalid.stat_cat_format', oils_i18n_gettext('import.item.invalid.stat_cat_format', 'Bad format for stat cat data, should be like: CAT 1|VALUE 1', 'vie', 'description') ); +INSERT INTO vandelay.import_error ( code, description ) VALUES ( + 'import.item.invalid.stat_cat_data', oils_i18n_gettext('import.item.invalid.stat_cat_data', 'Invalid stat cat data', 'vie', 'description') ); -- Event def for email notice for hold cancelled due to lack of target ----- diff --git a/Open-ILS/src/sql/Pg/upgrade/YYYY.schema.vandelay-stat-cat-import.sql b/Open-ILS/src/sql/Pg/upgrade/YYYY.schema.vandelay-stat-cat-import.sql index 0256b1be8b..57b0a45855 100644 --- a/Open-ILS/src/sql/Pg/upgrade/YYYY.schema.vandelay-stat-cat-import.sql +++ b/Open-ILS/src/sql/Pg/upgrade/YYYY.schema.vandelay-stat-cat-import.sql @@ -2,6 +2,11 @@ BEGIN; --SELECT evergreen.upgrade_deps_block_check('XXXX', :eg_version); +INSERT INTO vandelay.import_error ( code, description ) VALUES ( + 'import.item.invalid.stat_cat_format', oils_i18n_gettext('import.item.invalid.stat_cat_format', 'Bad format for stat cat data, should be like: CAT 1|VALUE 1', 'vie', 'description') ); +INSERT INTO vandelay.import_error ( code, description ) VALUES ( + 'import.item.invalid.stat_cat_data', oils_i18n_gettext('import.item.invalid.stat_cat_data', 'Invalid stat cat data', 'vie', 'description') ); + ALTER TABLE vandelay.import_item_attr_definition ADD COLUMN stat_cat_data TEXT;