<?php

class ACMS_POST_Form_Delete extends ACMS_POST_Form
{
    function post()
    {
        $this->Post->setMethod('form', 'fmidIsNull', ($formId = intval($this->Get->get('fmid'))));
        $this->Post->setMethod('form', 'operative', $this->formAuthorization()->canEdit((int) SUID, BID));
        $this->Post->validate();

        $formName = ACMS_RAM::formName($formId);
        $formCode = ACMS_RAM::formCode($formId);

        // 他ブログのフォームを削除しないよう、対象が現在のブログに属することを確認する
        $form = $this->findFormById($formId);

        if ($this->Post->isValidAll() && $form !== null && $form['bid'] === BID) {
            $this->formRepository()->delete($formId);

            $this->Post->set('edit', 'delete');
            AcmsLogger::info('フォームID「' . $formName . '（' . $formCode . '）」を削除しました');
        } else {
            AcmsLogger::info('フォームID「' . $formName . '（' . $formCode . '）」の削除に失敗しました', [
                'Post' => $this->Post,
            ]);
        }

        return $this->Post;
    }
}
