You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
ngcp-panel/lib/NGCP/Panel/Field/NumRangeAPI.pm

34 lines
858 B

package NGCP::Panel::Field::NumRangeAPI;
use Sipwise::Base;
extends 'HTML::FormHandler::Field::Text';
has 'min_start' => (isa => 'Int', default => 0, is => 'rw');
has 'max_end' => (isa => 'Int', default => 999_999, is => 'rw');
sub validate {
my ( $self ) = @_;
my ($start, $end) = split(/\-/, $self->value);
$end //= $start;
unless ((defined $start) && (defined $end) && $start >= 0 && $end >= 0) {
$self->add_error('Invalid format');
return;
}
if ($end < $start) {
$self->add_error('Second value smaller than first');
return;
}
if ($start < $self->min_start) {
$self->add_error('First value too small');
return;
}
if ($end > $self->max_end) {
$self->add_error('Second value too big');
return;
}
return;
}
1;
# vim: set tabstop=4 expandtab: