Skip to content
Snippets Groups Projects
ExternalSignatoryBookModel.php 3.23 KiB
Newer Older
<?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'],
                'message_content' => $aArgs['message_content'],
            ]
        ]);

        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;
    }
}