diff options
author | Christian Pointner <equinox@spreadspace.org> | 2015-10-09 00:16:02 (GMT) |
---|---|---|
committer | Christian Pointner <equinox@spreadspace.org> | 2015-10-09 00:16:02 (GMT) |
commit | 91a5a9072f82cef110535917a4601f14ddd9fa31 (patch) | |
tree | a6be492d2d84382c4a61ac2309dc92cf20255f28 /lib/RHRD/utils.pm | |
parent | e10c9d729f9c7c9bf342e0053dc53988d4e26ff2 (diff) |
improved sanity checks for dropbox params
Diffstat (limited to 'lib/RHRD/utils.pm')
-rwxr-xr-x | lib/RHRD/utils.pm | 58 |
1 files changed, 58 insertions, 0 deletions
diff --git a/lib/RHRD/utils.pm b/lib/RHRD/utils.pm index 083f657..81e5f86 100755 --- a/lib/RHRD/utils.pm +++ b/lib/RHRD/utils.pm @@ -54,4 +54,62 @@ sub get_rd_week return $week; } +use constant { + DB_PARAM_TYPE_HINT => "only S, M and J are allowed with S -> Show, M -> Musicpool, J -> Jingles", + DB_PARAM_RHYTHM_HINT => "only 0 or 1 are allowed, length must be exactly 4 and it must not be '0000'", + DB_PARAM_DOW_HINT => "must be between 1 and 7 (1=Monday, ..., 7=Sunday)", + DB_PARAM_STARTTIME_HINT => "must be in format HHMM (without seperator) in 24 hour format", + DB_PARAM_LEN_HINT => "must be a positive number below 1440", +}; + +sub dropbox_param_type_ok +{ + my ($type) = @_; + + unless(defined($type) && ($type == 'S' || $type == 'M' || $type == 'J')) { + return (0, "unkown type '" . (defined($type) ? $type : 'undef') . "'", DB_PARAM_TYPE_HINT); + } + return (1, 'OK', DB_PARAM_TYPE_HINT); +} + +sub dropbox_param_rhythm_ok +{ + my ($rhythm) = @_; + + if(!defined($rhythm) || $rhythm !~ m/^[01]{4}$/ || $rhythm eq '0000') { + return (0, "rhythm '" . (defined($rhythm) ? $rhythm : 'undef') . "' contains illegal characters or is too long/short", DB_PARAM_RHYTHM_HINT); + } + return (1, 'OK', DB_PARAM_RHYTHM_HINT); +} + +sub dropbox_param_dow_ok +{ + my ($dow) = @_; + + if(!defined($dow) || $dow < 1 || $dow > 7) { + return (0, "dow '" . (defined($dow) ? $dow : 'undef') . "' is out of bounds", DB_PARAM_DOW_HINT); + } + return (1, 'OK', DB_PARAM_DOW_HINT); +} + +sub dropbox_param_starttime_ok +{ + my ($starttime) = @_; + + if(!defined($starttime) || $starttime !~ m/^[0-2][0-9][0-5][0-9]$/ || $starttime > 2359) { + return (0, "starttime '" . (defined($starttime) ? $starttime : 'undef') . "' is not a valid clock time", DB_PARAM_STARTTIME_HINT); + } + return (1, 'OK', DB_PARAM_STARTTIME_HINT); +} + +sub dropbox_param_len_ok +{ + my ($len) = @_; + + if(!defined($len) || $len <= 0 || $len > 1440) { + return (0, "len '" . (defined($len) ? $len : 'undef') . "' is out of bounds", DB_PARAM_LEN_HINT); + } + return (1, 'OK', DB_PARAM_LEN_HINT); +} + return 1; |