public function executeUpdate($request) { $object = $this->getRequestParameter('object'); $user = User::getByApiKey($request->getParameter('login_id'), $request->getParameter('api_key')); if (!$user) { $output = '<rsp stat="fail"><err code="2" msg="login_id and api_key do not match" /></rsp>'; } elseif ($object == 'application') { $form = new ApplicationForm(); $form->bind(array('id' => $request->getParameter('id'), 'name' => $request->getParameter('name'), 'description' => $request->getParameter('description'), 'source_url' => $request->getParameter('source_url'))); if ($form->isValid()) { $application = Application::update($form->getValues(), $user); if ($application) { $output = '<rsp stat="ok">' . $application->getXML() . '</rsp>'; } else { $output = '<rsp stat="fail"><err code="4" msg="Unable to update application." /></rsp>'; } } else { $output = '<rsp stat="fail"><err code="4" msg="' . $form->getErrorSchema() . '" /></rsp>'; } } elseif ($object == 'comment') { $form = new CommentForm(); $application_id = $module_id = $theme_id = null; if ($request->getParameter('application_id')) { $application_id = $request->getParameter('application_id'); } if ($request->getParameter('module_id')) { $module_id = $request->getParameter('module_id'); } if ($request->getParameter('theme_id')) { $theme_id = $request->getParameter('theme_id'); } $form->bind(array('comment' => $request->getParameter('comment'), 'application_id' => $application_id, 'module_id' => $module_id, 'theme_id' => $theme_id)); if ($form->isValid()) { $comment = Comment::update($form->getValues(), $user); $output = '<rsp stat="ok">' . $comment->getXML() . '</rsp>'; } else { $output = '<rsp stat="fail"><err code="3" msg="' . $form->getErrorSchema() . '" /></rsp>'; } } elseif ($object == 'module') { $form = new ModuleForm(); $form->bind(array('id' => $request->getParameter('id'), 'name' => $request->getParameter('name'), 'description' => $request->getParameter('description'), 'source_url' => $request->getParameter('source_url'), 'application_id' => $request->getParameter('application_id'))); if ($form->isValid()) { $module = Madule::update($form->getValues(), $user); if ($module) { $output = '<rsp stat="ok">' . $module->getXML() . '</rsp>'; } else { $output = '<rsp stat="fail"><err code="4" msg="Unable to update module." /></rsp>'; } } else { $output = '<rsp stat="fail"><err code="4" msg="' . $form->getErrorSchema() . '" /></rsp>'; } } elseif ($object == 'theme') { $form = new ThemeForm(); $form->bind(array('id' => $request->getParameter('id'), 'name' => $request->getParameter('name'), 'description' => $request->getParameter('description')), $request->getFiles()); if ($form->isValid()) { $theme = Theme::update($form->getValues(), $user); if ($theme) { $output = '<rsp stat="ok">' . $theme->getXML() . '</rsp>'; } else { $output = '<rsp stat="fail"><err code="5" msg="Unable to update theme." /></rsp>'; } } else { $output = '<rsp stat="fail"><err code="5" msg="' . $form->getErrorSchema() . '" /></rsp>'; } } elseif ($object == 'theme_group') { $output = '<rsp stat="fail"><err code="6" msg="This object is not supported for update" /></rsp>'; } elseif ($object == 'user') { $form = new UserForm(); $form->bind(array('id' => $request->getParameter('id'), 'name' => $request->getParameter('name'), 'password' => $request->getParameter('password'), 'password2' => $request->getParameter('password'), 'email' => $request->getParameter('email'), 'role' => null)); if ($form->isValid()) { $update_user = User::update($form->getValues(), $user); if ($update_user) { $output = '<rsp stat="ok">' . $update_user->getXML() . '</rsp>'; } else { $output = '<rsp stat="fail"><err code="7" msg="Unable to update user." /></rsp>'; } } else { $output = '<rsp stat="fail"><err code="7" msg="' . $form->getErrorSchema() . '" /></rsp>'; } } $this->output = $output; $this->setTemplate('index'); }