package org.fastcatsearch.http.action.management.dictionary;
import java.io.Writer;
import org.fastcatsearch.db.dao.DictionaryDAO;
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.plugin.Plugin;
import org.fastcatsearch.plugin.PluginService;
import org.fastcatsearch.plugin.analysis.AnalysisPlugin;
import org.fastcatsearch.service.ServiceManager;
import org.fastcatsearch.util.ResponseWriter;
@ActionMapping(value="/management/dictionary/truncate", authority=ActionAuthority.Dictionary, authorityLevel=ActionAuthorityLevel.WRITABLE)
public class TruncateDictionaryAction extends AuthAction {
@Override
public void doAuthAction(ActionRequest request, ActionResponse response) throws Exception {
String pluginId = request.getParameter("pluginId");
String dictionaryId = request.getParameter("dictionaryId");
PluginService pluginService = ServiceManager.getInstance().getService(PluginService.class);
Plugin plugin = pluginService.getPlugin(pluginId);
AnalysisPlugin analysisPlugin = (AnalysisPlugin) plugin;
DictionaryDAO dictionaryDAO = analysisPlugin.getDictionaryDAO(dictionaryId);
boolean isSuccess = false;
String errorMessage = null;
try{
dictionaryDAO.truncate();
isSuccess = true;
analysisPlugin.dictionaryStatusDAO().updateUpdateTime(dictionaryId);
}catch(Exception e){
isSuccess = false;
errorMessage = e.getCause().toString();
}
Writer writer = response.getWriter();
ResponseWriter resultWriter = getDefaultResponseWriter(writer);
resultWriter.object().key("success").value(isSuccess);
if(!isSuccess && errorMessage != null){
resultWriter.key("errorMessage").value(errorMessage);
}
resultWriter.endObject();
resultWriter.done();
}
}