added event for duplicate bucket creation errors
authorerickson <erickson@dcc99617-32d9-48b4-a31d-7c20da2025e4>
Fri, 2 Feb 2007 16:03:48 +0000 (16:03 +0000)
committererickson <erickson@dcc99617-32d9-48b4-a31d-7c20da2025e4>
Fri, 2 Feb 2007 16:03:48 +0000 (16:03 +0000)
git-svn-id: svn://svn.open-ils.org/ILS/branches/rel_1_0@6848 dcc99617-32d9-48b4-a31d-7c20da2025e4

Open-ILS/src/extras/ils_events.xml
Open-ILS/src/perlmods/OpenILS/Application/Actor/Container.pm

index f34d79c..46fc303 100644 (file)
        <event code='1709' textcode='MAX_HOLDS'>
                <desc xml:lang="en-US">User has reached the maximum number of holds</desc>
        </event>
+       <event code='1710' textcode='CONTAINER_EXISTS'>
+               <desc xml:lang="en-US">User has already created a bucket with the requested name</desc>
+       </event>
 
 
        <event code='2000' textcode='BAD_PARAMS'>
index 02bb79e..5606586 100644 (file)
@@ -194,31 +194,37 @@ sub bucket_create {
                
        $bucket->clear_id;
 
-       $logger->debug("creating bucket: " . Dumper($bucket));
+    my $evt = OpenILS::Event->new('CONTAINER_EXISTS', 
+        payload => [$class, $bucket->owner, $bucket->btype, $bucket->name]);
+    my $search = {name => $bucket->name, owner => $bucket->owner, btype => $bucket->btype};
 
-       my $stat;
+       my $obj;
        if( $class eq 'copy' ) {
+        return $evt if $e->search_container_copy_bucket($search)->[0];
                return $e->event unless
-                       $stat = $e->create_container_copy_bucket($bucket);
+                       $obj = $e->create_container_copy_bucket($bucket);
        }
 
        if( $class eq 'callnumber' ) {
+        return $evt if $e->search_container_call_number_bucket($search)->[0];
                return $e->event unless
-                       $stat = $e->create_container_call_number_bucket($bucket);
+                       $obj = $e->create_container_call_number_bucket($bucket);
        }
 
        if( $class eq 'biblio' ) {
+        return $evt if $e->search_container_biblio_record_entry_bucket($search)->[0];
                return $e->event unless
-                       $stat = $e->create_container_biblio_record_entry_bucket($bucket);
+                       $obj = $e->create_container_biblio_record_entry_bucket($bucket);
        }
 
        if( $class eq 'user') {
+        return $evt if $e->search_container_user_bucket($search)->[0];
                return $e->event unless
-                       $stat = $e->create_container_user_bucket($bucket);
+                       $obj = $e->create_container_user_bucket($bucket);
        }
 
        $e->commit;
-       return $stat->id;
+       return $obj->id;
 }