Skip to content
Snippets Groups Projects
SendMessageExchangeController.php 3.17 KiB
Newer Older
  • Learn to ignore specific revisions
  • Florian Azizian's avatar
    Florian Azizian committed
    <?php
    
    /**
    * Copyright Maarch since 2008 under licence GPLv3.
    * See LICENCE.txt file at the root folder for more details.
    * This file is part of Maarch software.
    *
    */
    
    /**
    * @brief Send Message Exchange Review Controller
    * @author dev@maarch.org
    */
    
    namespace MessageExchange\controllers;
    
    use MessageExchange\models\MessageExchangeModel;
    
    class SendMessageExchangeController
    {
        public static function saveMessageExchange($aArgs = [])
        {
            $dataObject = $aArgs['dataObject'];
            $oData                                        = new \stdClass();
            $oData->messageId                             = MessageExchangeModel::generateUniqueId();
            $oData->date                                  = $dataObject->Date;
    
            $oData->MessageIdentifier                     = new \stdClass();
            $oData->MessageIdentifier->value              = $dataObject->MessageIdentifier->value;
            
            $oData->TransferringAgency                    = new \stdClass();
            $oData->TransferringAgency->Identifier        = new \stdClass();
            $oData->TransferringAgency->Identifier->value = $dataObject->TransferringAgency->Identifier->value;
            
            $oData->ArchivalAgency                        = new \stdClass();
            $oData->ArchivalAgency->Identifier            = new \stdClass();
            $oData->ArchivalAgency->Identifier->value     = $dataObject->ArchivalAgency->Identifier->value;
            
            $oData->archivalAgreement                     = new \stdClass();
            $oData->archivalAgreement->value              = ""; // TODO : ???
            
            $replyCode = "";
            if (!empty($dataObject->ReplyCode)) {
                $replyCode = $dataObject->ReplyCode;
            }
    
            $oData->replyCode                             = new \stdClass();
            $oData->replyCode                             = $replyCode;
    
            $dataObject = self::cleanBase64Value(['dataObject' => $dataObject]);
    
            $aDataExtension = [
                'status'            => 'W',
                'fullMessageObject' => $dataObject,
                'resIdMaster'       => $aArgs['res_id_master'],
                'SenderOrgNAme'     => $dataObject->TransferringAgency->OrganizationDescriptiveMetadata->Contact[0]->DepartmentName,
                'RecipientOrgNAme'  => $dataObject->ArchivalAgency->OrganizationDescriptiveMetadata->Name,
                'filePath'          => $aArgs['file_path'],
            ];
    
            $messageId = MessageExchangeModel::insertMessage([
                "data"          => $oData,
                "type"          => $aArgs['type'],
                "dataExtension" => $aDataExtension,
                "userId"        => $aArgs['userId']
            ]);
    
            return $messageId;
        }
    
        protected static function cleanBase64Value($aArgs = [])
        {
            $dataObject = $aArgs['dataObject'];
            $aCleanDataObject = [];
            if (!empty($dataObject->DataObjectPackage->BinaryDataObject)) {
                foreach ($dataObject->DataObjectPackage->BinaryDataObject as $key => $value) {
                    $value->Attachment->value = "";
                    $aCleanDataObject[$key] = $value;
                }
                $dataObject->DataObjectPackage->BinaryDataObject = $aCleanDataObject;
            }
            return $dataObject;
        }
    }