Skip to content
Snippets Groups Projects
ExternalSignatoryBookModel.php 3.17 KiB
Newer Older
  • Learn to ignore specific revisions
  • <?php
    
    /**
    * Copyright Maarch since 2008 under license.
    * See LICENSE.txt file at the root folder for more details.
    * This file is part of Maarch software.
    *
    */
    
    /**
    * @brief ExternalSignatoryBook Model
    * @author dev@maarch.org
    */
    
    namespace ExternalSignatoryBook\models;
    
    use SrcCore\models\DatabaseModel;
    use SrcCore\models\ValidatorModel;
    
    class ExternalSignatoryBookModel
    {
        public static function get(array $aArgs = [])
        {
            ValidatorModel::arrayType($aArgs, ['select', 'where', 'data', 'orderBy']);
            ValidatorModel::intType($aArgs, ['limit']);
    
            $externalData = DatabaseModel::select([
                'select'    => empty($aArgs['select']) ? ['*'] : $aArgs['select'],
                'table'     => ['external_signatory_book'],
                'where'     => empty($aArgs['where']) ? [] : $aArgs['where'],
                'data'      => empty($aArgs['data']) ? [] : $aArgs['data'],
                'orderBy'   => empty($aArgs['orderBy']) ? [] : $aArgs['orderBy'],
                'limit'     => empty($aArgs['limit']) ? 0 : $aArgs['limit']
            ]);
    
            return $externalData;
        }
    
        public static function getById(array $aArgs)
        {
            ValidatorModel::notEmpty($aArgs, ['id']);
            ValidatorModel::intVal($aArgs, ['id']);
            ValidatorModel::arrayType($aArgs, ['select']);
    
            $externalData = ExternalSignatoryBookModel::get([
                'select'    => empty($aArgs['select']) ? ['*'] : $aArgs['select'],
                'where'     => ['id = ?'],
                'data'      => [$aArgs['id']]
            ]);
    
            if (!empty($externalData)) {
                return $externalData[0];
            }
    
            return [];
        }
    
        public static function create(array $aArgs)
        {
            ValidatorModel::notEmpty($aArgs, ['label', 'type', 'connection_data', 'otp_code']);
            ValidatorModel::stringType($aArgs, ['label', 'type']);
    
            $nextSequenceId = DatabaseModel::getNextSequenceValue(['sequenceId' => 'external_signatory_book_id_seq']);
            DatabaseModel::insert([
                'table'         => 'external_signatory_book',
                'columnsValues' => [
                    'id'              => $nextSequenceId,
                    'label'           => $aArgs['label'],
                    'type'            => $aArgs['type'],
                    'connection_data' => $aArgs['connection_data'],
                    'otp_code'        => $aArgs['otp_code'],
                ]
            ]);
    
            return $nextSequenceId;
        }
    
        public static function update(array $args)
        {
            ValidatorModel::notEmpty($args, ['set', 'where', 'data']);
            ValidatorModel::arrayType($args, ['set', 'where', 'data']);
    
            DatabaseModel::update([
                'table' => 'external_signatory_book',
                'set'   => $args['set'],
                'where' => $args['where'],
                'data'  => $args['data']
            ]);
    
            return true;
        }
    
        public static function delete(array $args)
        {
            ValidatorModel::notEmpty($args, ['where', 'data']);
            ValidatorModel::arrayType($args, ['where', 'data']);
    
            DatabaseModel::delete([
                'table' => 'external_signatory_book',
                'where' => $args['where'],
                'data'  => $args['data']
            ]);
    
            return true;
        }
    }