Skip to content
Snippets Groups Projects
SendMessageExchangeController.php 3.17 KiB
Newer Older
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;
    }
}