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->resolveSetting($config);
$skin->setting($config);
$skinHandler->saveConfig($skinInstanceId, $skin);
return XePresenter::makeApi(['type' => 'success', 'message' => '저장되었습니다.', 'skinId' => $skinId, 'skinTitle' => $skin->getTitle()]);
}