package org.fastcatsearch.http.action.management.collections;
import java.io.OutputStream;
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.ir.IRService;
import org.fastcatsearch.ir.config.CollectionContext;
import org.fastcatsearch.ir.config.DataSourceConfig;
import org.fastcatsearch.service.ServiceManager;
import org.fastcatsearch.util.JAXBConfigs;
@ActionMapping(value = "/management/collections/datasource", authority = ActionAuthority.Collections, authorityLevel = ActionAuthorityLevel.READABLE)
public class GetCollectionDatasourceAction extends AuthAction {
@Override
public void doAuthAction(ActionRequest request, ActionResponse response) throws Exception {
String collectionId = request.getParameter("collectionId");
IRService irService = ServiceManager.getInstance().getService(IRService.class);
CollectionContext collectionContext = irService.collectionContext(collectionId);
DataSourceConfig dataSourceConfig = null;
if(collectionContext != null) {
dataSourceConfig = collectionContext.dataSourceConfig();
} else {
dataSourceConfig = new DataSourceConfig();
}
OutputStream os = response.getOutputStream();
JAXBConfigs.writeRawConfig(os, dataSourceConfig, DataSourceConfig.class);
}
}