<?php

use Acms\Services\Facades\Entry;
use Acms\Services\Facades\Common;
use Acms\Services\Facades\Logger as AcmsLogger;

class ACMS_POST_Revision_Delete extends ACMS_POST
{
    public function post()
    {
        $entryId = defined('EID') ? (int)EID : null;
        $revisionId = defined('RVID') ? (int)RVID : null;
        try {
            if ($entryId === null) {
                throw new \RuntimeException('エントリーが指定されていません');
            }
            if ($revisionId === null) {
                throw new \RuntimeException('バージョンが指定されていません');
            }
            if (!Entry::canDeleteEntryRevision($entryId, $revisionId)) {
                throw new \RuntimeException('権限がありません');
            }
            $revision = Entry::getRevision($entryId, $revisionId);

            Entry::deleteEntryRevision($entryId, $revisionId);

            AcmsLogger::info('「' . ACMS_RAM::entryTitle($entryId) . '（' . $revision['entry_rev_memo'] . '）」バージョンを削除しました', [
                'eid' => $entryId,
                'rvid' => $revisionId,
            ]);
        } catch (\Exception $e) {
            AcmsLogger::info('バージョンを削除できませんでした。' . $e->getMessage(), Common::exceptionArray($e));
        }
        Common::setSafeHeadersWithoutCache(200, 'text/plain');
        die('OK');
    }
}
