public function postSetting(Request $request, SkinHandler $skinHandler) { $validation = Validator::make($request->all(), ['skinId' => 'required', 'instanceId' => 'required']); if ($validation->fails()) { throw new InvalidArgumentException(); } $skinInstanceId = $request->get('instanceId'); $skinId = $request->get('skinId'); $config = $request->except('instanceId', 'skinId', '_token'); $skin = $skinHandler->get($skinId); // 각 스킨에게 config값을 전처리 할 기회를 준다. $config = $skin->updateSetting($config); $skin->setting($config); $skinHandler->saveConfig($skinInstanceId, $skin); return XePresenter::makeApi(['type' => 'success', 'message' => '저장되었습니다.', 'skinId' => $skinId, 'skinTitle' => $skin->getTitle()]); }