Skip to content

API-004 イベントマスタ REST ​

← API-一覧

概要 ​

イベントマスタ(event_master)の一覧取得・新規登録・更新・削除を行う REST。日別記事編集画面の「各ホールのイベント」(HallEventsBlock.tsx / HallEventsField.tsx)が、ホール別のイベント一覧取得と未登録イベントの新規登録に使う。処理は EventMasterRegistrationHandler → EventMasterRegistrationController → EventMasterRegistrationServiceInterface / EventNameListServiceInterface の順に委譲する。

hall は HallEnum の値(island / espasu / bigapple / uno)。HallEnum::from_string() で解決できない値は 400 を返す。

API-004-1 GET /list ​

入力(リクエスト) ​

param必須型・制約説明
hallはいstring(空不可)対象ホール。sanitize_text_field 後に HallEnum で解決する

出力(レスポンス) ​

field型説明
itemsarray{ id: int, name: string }[]。指定ホールのイベント名一覧

HTTP ステータス: 200

失敗・エラー条件 ​

条件HTTPmessage
hall が HallEnum で解決できない400Messages::REST_INVALID_HALL_MESSAGE

API-004-2 POST /register ​

入力(リクエスト) ​

JSON ボディ。WordPress の args 検証は使わず、Controller / Service で検証する。

param必須型・制約説明
nameはいstring(1〜255 文字)イベント名。前後の空白は除去してから検証する
hallはいstring対象ホール(HallEnum の値)

出力(レスポンス) ​

field型説明
successbooltrue
messagestringEventMasterRegistrationMessages::EVENT_REGISTRATION_SUCCESS
errorsstring[]空配列
idint登録したイベントの ID

HTTP ステータス: 200

失敗・エラー条件 ​

条件HTTPmessage
hall 不正400Messages::REST_INVALID_HALL_MESSAGE
name が空・255 文字超400EventMasterRegistrationMessages::EVENT_REGISTRATION_VALIDATION_ERROR(errors に詳細)
同一の name + hall が登録済み400EventMasterRegistrationMessages::EVENT_REGISTRATION_DUPLICATE_MESSAGE
登録に失敗400EventMasterRegistrationMessages::EVENT_REGISTRATION_FAILED_MESSAGE
登録したが登録結果の取得に失敗500EventMasterRegistrationMessages::EVENT_REGISTRATION_REGISTERED_BUT_FETCH_FAILED

API-004-3 POST /update ​

入力(リクエスト) ​

param必須型・制約説明
idはい正の整数イベント ID
nameはいstring(1〜255 文字)更新後のイベント名
hallはいstring(空不可)更新後のホール(HallEnum の値)
is_showいいえ'1' / 1 / true表示フラグ。左記のいずれかのときのみ true、それ以外は false

出力(レスポンス) ​

field型説明
successbooltrue
messagestringEventMasterRegistrationMessages::EVENT_REGISTRATION_UPDATE_SUCCESS。変更が無いときは EVENT_REGISTRATION_NO_CHANGE
errorsstring[]空配列
idintイベント ID

HTTP ステータス: 200

失敗・エラー条件 ​

条件HTTPmessage
id 不正400Messages::REST_INVALID_ID_MESSAGE
hall 不正400Messages::REST_INVALID_HALL_MESSAGE
name が空・255 文字超400EventMasterRegistrationMessages::EVENT_REGISTRATION_VALIDATION_ERROR
対象が無い400EventMasterRegistrationMessages::EVENT_REGISTRATION_NOT_FOUND_MESSAGE
同一の name + hall が別のイベントで登録済み400EventMasterRegistrationMessages::EVENT_REGISTRATION_DUPLICATE_UPDATE_MESSAGE
更新に失敗500EventMasterRegistrationMessages::EVENT_REGISTRATION_UPDATE_FAILED

API-004-4 POST /delete ​

入力(リクエスト) ​

param必須型・制約説明
idはい正の整数イベント ID

出力(レスポンス) ​

field型説明
successbooltrue
messagestringEventMasterRegistrationMessages::EVENT_DELETE_SUCCESS
errorsstring[]空配列
idint削除したイベント ID

HTTP ステータス: 200

失敗・エラー条件 ​

条件HTTPmessage
id 不正400Messages::REST_INVALID_ID_MESSAGE
対象が無い400EventMasterRegistrationMessages::EVENT_DELETE_NOT_FOUND
削除に失敗500EventMasterRegistrationMessages::EVENT_DELETE_FAILED

権限・nonce ​

EventMasterRegistrationHandler にルート用の PermissionCheckerInterface を 2 つ注入し、ルートごとに使い分ける。どちらも X-WP-Nonce ヘッダー(または _wpnonce)の wp_rest nonce を先に検証する。

ルートchecker必要な権限想定する利用者
API-004-1 GET /list・API-004-2 POST /registerWordPressDailyArticleAdminPermissionCheckeredit_daily_articles日別記事を編集するユーザー(daily_article_editor_bot を含む)
API-004-3 POST /update・API-004-4 POST /deleteWordPressManageOptionsWithNonceCheckermanage_options管理者

既存イベントの改変(更新・削除)は他の日別記事に影響するため管理者に限る。新規登録は重複チェック(同一 name + hall は 400)があるため、日別記事を編集できるユーザーに開放する。

条件HTTPmessage
nonce が無い・不正403Messages::AUTH_FAILED
権限が無い403Messages::PERMISSION_DENIED

WordPressManageOptionsWithNonceChecker の Local バイパス(LocalRestBypassGuard)の条件は同クラスの PHPDoc を参照。

関連 ​