Metadata-Version: 1.2
Name: orator-validator
Version: 0.4.1
Summary: Orator Validator provides the best Model implement validation for Orator
Home-page: https://pypi.org/project/orator-validator/
Author: Alfonso Villalobos
Author-email: alfonso@codepeat.com
License: MIT
Description: Orator Validator
        ################
        
        |Downloads|
        
        .. |Downloads| image:: https://pepy.tech/badge/orator-validator
           :target: https://pepy.tech/project/orator-validator
        
        This is a orator plugin that you can use to validate
        your model when the user is creating a new item or
        updating one on the database is easy to use and cleans
        the code a lot
        
        Installation
        ============
        
        You can install the plugin by using pip
        
        .. code-block:: bash
        
          $ pip install orator-validator
        
        
        How to use it
        =============
        
        Setup
        -----
        
        this is an example of how to implement on your orator model
        
        
        .. code-block:: python
        
          from orator import Model
          from orator_validator import Validator
        
        
          class User(Model, Validator):
        
              __connection__ = 'local'
              __fillable__ = [
                    'name', 'email', 'password', 'phone_number'
              ]
              __guarded__ = ['id', 'password']
        
        
          class UserValidation(object):
            '''Here goes the validations that you need'''
        
          User.observe(UserValidation())
        
        Functions available
        -------------------
        
        Validate saving function
        ~~~~~~~~~~~~~~~~~~~~~~~~
        
        the validate function accepts this params
        
        * **require:** boolean when True checks if they send the value
        * **data_type:** object Verifies if the value is specific data type
        * **regex:** string pass a regex to verified
        * **date_str:** string witch you want to check the format of the date example '%H:%M'
        
        Example
        ~~~~~~~
        
        .. code-block:: python
        
          def saving(self, user):
              user.validate('name', require=True, data_type=str)
              user.validate(
                  'email', regex="(?:[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*|\"(?:[\\x01-\\x08\\x0b\\x0c\\x0e-\\x1f\\x21\\x23-\\x5b\\x5d-\\x7f]|\\[\\x01-\\x09\\x0b\\x0c\\x0e-\\x7f])*\")@(?:(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?|\\[(?:(?:(2(5[0-5]|[0-4][0-9])|1[0-9][0-9]|[1-9]?[0-9]))\\.){3}(?:(2(5[0-5]|[0-4][0-9])|1[0-9][0-9]|[1-9]?[0-9])|[a-z0-9-]*[a-z0-9]:(?:[\\x01-\\x08\\x0b\\x0c\\x0e-\\x1f\\x21-\\x5a\\x53-\\x7f]|\\[\\x01-\\x09\\x0b\\x0c\\x0e-\\x7f])+)\\])"
              )
              user.validate(
                  'password', regex="^(?=.*[A-Za-z])(?=.*\\d)(?=.*[@$!%*#?&])[A-Za-z\\d@$!%*#?&]{6,}$"
              )
              user.errors()
        
        Validate update function
        ~~~~~~~~~~~~~~~~~~~~~~~~
        
        the validate_update accepts this params
        
        * **guarded:** boolean if True value cannot be updated
        * **data_tpe:** needs to send specific data type
        * **regex:** regex to validate the value
        * **date_str:** string to validate a date format
        * **function_callback:** callback function if the value was send
        * **args:** arguments for the function callbacks
        
        Example
        ~~~~~~~
        
        .. code-block:: python
        
          def updating(self, user):
              user.validate_update('email', guarded=True)
              user.validate_update(
                'password', function_callback=self.__validate_new_password, user=user
              )
              user.errors()
        
          def __validate_new_password(self, user):
              '''
              Validate that the new password is diferent than the old one
              '''
              User.find(user.id)
              if user.password == User.find(user.id).password:
                raise Exception("Can't update password with old one")
        
        Process function
        ~~~~~~~~~~~~~~~~
        
        the process function accepts
        
        * **exist:** function uses as a callback if the value was send
        * **not_exist:** function uses as a callback if the value was not send
        * **args:** arguments for the function callbacks
        
        Example
        ~~~~~~~
        
        .. code-block:: python
        
          def saving(self, user):
              user.process('phone_number', exist=self.__process_phone)
              user.errors()
        
          def __process_phone(self, user):
              '''
              This function process the phone if the user send one
              '''
              if user.phone[0] != "+":
                user.phone = "+1 {}".format(user.phone)
        
Platform: UNKNOWN
Classifier: Programming Language :: Python :: 3.7
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: OS Independent
Requires-Python: >=3.7
