The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

Name

QBit::Validator - It is used for validation of input parameters.

GitHub

https://github.com/QBitFramework/QBit-Validator

Install

  • cpanm QBit::Validator

  • apt-get install libqbit-validator-perl (http://perlhub.ru/)

Package methods

new

create object QBit::Validator and check data using template

Arguments:

  • data - checking data

  • template - template for check

  • pre_run - function is executed before checking

  • app - model using in check

  • throw - throw (boolean type, throw exception if an error has occurred)

Example:

  my $data = {
      hello => 'hi, qbit-validator'
  };

  my $qv = QBit::Validator->new(
      data => $data,
      template => {
          type => 'hash',
          fields => {
              hello => {
                  max_len => 5,
              },
          },
      },
  );

template

get or set template

Example:

  my $template = $qv->template;

  $qv->template($template);

has_errors

return boolean result (TRUE if an error has occurred or FALSE)

Example:

  if ($qv->has_errors) {
      ...
  }

data

return data

Example:

  $self->db->table->edit($qv->data) unless $qv->has_errors;

get_wrong_fields

return list name of fields with error

Example:

  if ($qv->has_errors) {
      my @fields = $qv->get_wrong_fields;

      ldump(\@fields); # ['hello']
      # [''] - error in root
  }

get_fields_with_error

return list fields with error

Example:

  if ($qv->has_errors) {
      my @fields = $qv->get_fields_with_error;

      ldump(\@fields);

      # [
      #     {
      #         msgs => ['Error'],
      #         path => ['hello']
      #     }
      # ]
      #
      # path => [''] - error in root
  }

get_error

return error by path

Example:

  if ($qv->has_errors) {
      my $error = $qv->get_error('hello'); # or ['hello']

      print $error; # 'Error'
  }

get_all_errors

return all errors join "\n"

Example:

  if ($qv->has_errors) {
      my $errors = $qv->get_all_errors();

      print $errors; # 'Error'
  }

throw_exception

throw Exception::Validator with error message from get_all_errors

Example:

  $qv->throw_exception if $qv->has_errors;

Default types

scalar (string/number)

  • optional

  • eq

  • regexp

  • min

  • max

  • len_min

  • len

  • len_max

  • in

For more information see tests

array (ref array)

  • optional

  • size_min

  • size

  • size_max

  • all

  • contents

For more information see tests

hash (ref hash)

  • optional

  • deps

  • fields

  • extra

  • one_of

  • any_of

For more information see tests