diff options
Diffstat (limited to 'lib')
-rwxr-xr-x | lib/RHRD/rddb.pm | 48 |
1 files changed, 46 insertions, 2 deletions
diff --git a/lib/RHRD/rddb.pm b/lib/RHRD/rddb.pm index 36b9dc0..6e83a5e 100755 --- a/lib/RHRD/rddb.pm +++ b/lib/RHRD/rddb.pm @@ -32,6 +32,15 @@ use constant { DB_VERSION => 245, RD_CONFIG_FILE => '/etc/rd.conf', DROPBOX_PSEUDO_STATION_NAME => 'import-dropbox', + RD_MIN_CART => 1, + RD_MAX_CART => 999999, + RD_MIN_CUT => 1, + RD_MAX_CUT => 999, + + RHRD_SYSTEM_MACROS_GROUP => 'SYSTEM', + RHRD_SHOW_MACROS_GROUP => 'SHOWS', + RHRD_ALLSHOWS_GROUP => 'ALL_SHOWS', + RHRD_ALLMUSICPOOLS_GROUP => 'ALL_POOLS', }; ########################### connection handling ########################### @@ -77,6 +86,27 @@ sub closedb $dbh->disconnect(); } +########################### utils ########################### + +sub get_cart_range +{ + my ($dbh, $groupname) = @_; + + my $sql = qq{select DEFAULT_LOW_CART, DEFAULT_HIGH_CART, DEFAULT_TITLE from GROUPS where NAME = ?;}; + my $sth = $dbh->prepare($sql) + or return (undef, 'ERROR', "Database Error: " . $dbh->errstr); + + $sth->execute($groupname) + or return (undef, 'ERROR', "Database Error: " . $sth->errstr); + + my ($low_cart, $high_cart, $chunk_size) = $sth->fetchrow_array; + $sth->finish(); + + unless(defined $low_cart) { return (undef, 'ERROR', "group '" . $groupname . "' does not exist"); } + + return ($low_cart, $high_cart, $chunk_size); +} + ########################### TOKEN handling ########################### sub get_token @@ -415,8 +445,6 @@ sub set_group_carts $enforce_cart_range = 'N'; } - # TODO: check if cart range is already in use by other group - my $sql = qq{update GROUPS set DEFAULT_LOW_CART = ?, DEFAULT_HIGH_CART = ?, DEFAULT_CART_TYPE = ? , ENFORCE_CART_RANGE = ? where NAME = ?;}; my $sth = $dbh->prepare($sql) or return (undef, 'ERROR', "Database Error: " . $dbh->errstr); @@ -600,3 +628,19 @@ sub get_show_carts } return 1; + +sub get_shows_cart_range +{ + my ($dbh) = @_; + return get_cart_range($dbh, RHRD_ALLSHOWS_GROUP) +} + +########################### MUSICPOOL handling ########################### + +sub get_musicpool_cart_range +{ + my ($dbh) = @_; + return get_cart_range($dbh, RHRD_ALLMUSICPOOLS_GROUP) +} + +################################# END #################################### |