package org.fastcatsearch.http.action.management.logs;
import java.io.Writer;
import org.fastcatsearch.db.vo.NotificationConfigVO;
import org.fastcatsearch.http.ActionAuthority;
import org.fastcatsearch.http.ActionAuthorityLevel;
import org.fastcatsearch.http.ActionMapping;
import org.fastcatsearch.http.action.ActionRequest;
import org.fastcatsearch.http.action.ActionResponse;
import org.fastcatsearch.http.action.AuthAction;
import org.fastcatsearch.notification.NotificationService;
import org.fastcatsearch.service.ServiceManager;
import org.fastcatsearch.util.ResponseWriter;
@ActionMapping(value="/management/logs/update-notification-setting", authority=ActionAuthority.Logs, authorityLevel=ActionAuthorityLevel.WRITABLE)
public class UpdateNotificationAlertSettingAction extends AuthAction {
@Override
public void doAuthAction(ActionRequest request, ActionResponse response) throws Exception {
boolean isSuccess = false;
String mode = request.getParameter("mode");
int id = request.getIntParameter("id",-1);
String code = request.getParameter("code");
String alertTo = request.getParameter("alertTo");
ServiceManager serviceManager = ServiceManager.getInstance();
NotificationService service = serviceManager.getService(NotificationService.class);
try {
NotificationConfigVO vo = new NotificationConfigVO();
if(id!=-1) {
if("delete".equals(mode)) {
service.deleteNotificationConfig(code);
} else {
vo.setId(id);
vo.setCode(code);
vo.setAlertTo(alertTo);
service.updateNotificationConfig(vo);
}
} else {
vo.setCode(code);
vo.setAlertTo(alertTo);
service.putNotificationConfig(vo);
}
isSuccess = true;
} catch (Exception e) {
logger.error("",e);
} finally {
service.close();
}
Writer writer = response.getWriter();
ResponseWriter responseWriter = getDefaultResponseWriter(writer);
responseWriter.object();
responseWriter.key("success").value(isSuccess);
responseWriter.endObject();
responseWriter.done();
}
}